mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-25 18:26:05 +08:00
fix: potential race condition on app load when migration (#2977)
Co-authored-by: Alex Yang <himself65@outlook.com>
This commit is contained in:
6
packages/env/src/global.ts
vendored
6
packages/env/src/global.ts
vendored
@@ -35,6 +35,12 @@ declare global {
|
||||
events: any;
|
||||
}
|
||||
|
||||
interface WindowEventMap {
|
||||
'migration-done': CustomEvent;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-var
|
||||
var $migrationDone: boolean;
|
||||
// eslint-disable-next-line no-var
|
||||
var platform: Platform | undefined;
|
||||
// eslint-disable-next-line no-var
|
||||
|
||||
@@ -118,7 +118,10 @@ const rootWorkspacesMetadataPromiseAtom = atom<
|
||||
}
|
||||
|
||||
// migration step, only data in `METADATA_STORAGE_KEY` will be migrated
|
||||
if (metadata.some(meta => !('version' in meta))) {
|
||||
if (
|
||||
metadata.some(meta => !('version' in meta)) &&
|
||||
!globalThis.$migrationDone
|
||||
) {
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
signal.addEventListener('abort', () => reject(), { once: true });
|
||||
window.addEventListener('migration-done', () => resolve(), {
|
||||
|
||||
Reference in New Issue
Block a user