fix: sqlite provider import sub doc db file (#2991)

Co-authored-by: Alex Yang <himself65@outlook.com>
This commit is contained in:
Peng XiaoandAlex Yang authored and GitHub committed 2023-07-04 17:47:42 +00:00
1 parent e158c09160
commit 33ba034336
7 files changed
+49 -39

No files matched your search

@@ -173,17 +173,18 @@ export const createSQLiteDBDownloadProvider: DocProviderCreator = (
Y.applyUpdate(doc, updates, sqliteOrigin);
}
const diff = Y.encodeStateAsUpdate(doc, updates);
const mergedUpdates = Y.encodeStateAsUpdate(doc);
// also apply updates to sqlite
await apis.db.applyDocUpdate(id, diff, subdocId);
await apis.db.applyDocUpdate(id, mergedUpdates, subdocId);
return true;
}
async function syncAllUpdates(doc: Doc) {
if (await syncUpdates(doc)) {
const subdocs = Array.from(doc.subdocs).filter(d => d.shouldLoad);
// load all subdocs
const subdocs = Array.from(doc.subdocs);
await Promise.all(subdocs.map(syncAllUpdates));
}
}
@@ -198,7 +199,7 @@ export const createSQLiteDBDownloadProvider: DocProviderCreator = (
disconnected = true;
},
sync: async () => {
logger.info('connect indexeddb provider', id);
logger.info('connect sqlite download provider', id);
try {
await syncAllUpdates(rootDoc);
_resolve();