1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Unblock subsequent Singleton.createInstance() (#3225)

- Also fix clusters with unknown workspaces

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2021-07-06 10:16:04 -04:00 committed by GitHub
parent c4623c424d
commit 803c3a3d34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 5 deletions

View File

@ -46,13 +46,16 @@ export class Singleton {
static createInstance<T, R extends any[]>(this: StaticThis<T, R>, ...args: R): T {
if (!Singleton.instances.has(this)) {
if (Singleton.creating.length > 0) {
throw new TypeError("Cannot create a second singleton while creating a first");
throw new TypeError(`Cannot create a second singleton (${this.name}) while creating a first (${Singleton.creating})`);
}
try {
Singleton.creating = this.name;
Singleton.instances.set(this, new this(...args));
} finally {
Singleton.creating = "";
}
}
return Singleton.instances.get(this) as T;
}

View File

@ -46,6 +46,8 @@ export function joinMigrations(...declarations: MigrationDeclaration[]): Migrati
iter.map(
migrations,
([v, fns]) => [v, (store: Conf<any>) => {
migrationLog(`Running ${v} migration for ${store.path}`);
for (const fn of fns) {
fn(store);
}

View File

@ -75,6 +75,11 @@ export default {
for (const workspaceId of cluster.workspaces ?? [cluster.workspace].filter(Boolean)) {
const workspaceHotbar = workspaceHotbars.get(workspaceId);
if (!workspaceHotbar) {
migrationLog(`Cluster ${uid} has unknown workspace ID, skipping`);
continue;
}
migrationLog(`Adding cluster ${uid} to ${workspaceHotbar.name}`);
if (workspaceHotbar?.items.length < defaultHotbarCells) {