Merge pull request #843 from vector-im/dbkr/dev_mode_idb_no_worker

Use IndexedDB storage in dev mode, just without the worker
This commit is contained in:
David Baker 2023-01-13 10:14:01 +00:00 committed by GitHub
commit 73682b67ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -94,12 +94,17 @@ export async function initClient(
const storeOpts = {} as ICreateClientOpts; const storeOpts = {} as ICreateClientOpts;
if (indexedDB && localStorage && !import.meta.env.DEV) { if (indexedDB && localStorage) {
storeOpts.store = new IndexedDBStore({ storeOpts.store = new IndexedDBStore({
indexedDB: window.indexedDB, indexedDB: window.indexedDB,
localStorage, localStorage,
dbName: SYNC_STORE_NAME, dbName: SYNC_STORE_NAME,
workerFactory: () => new IndexedDBWorker(), // We can't use the worker in dev mode because Vite simply doesn't bundle workers
// in dev mode: it expects them to use native modules. Ours don't, and even then only
// Chrome supports it. (It bundles them fine in production mode.)
workerFactory: import.meta.env.DEV
? undefined
: () => new IndexedDBWorker(),
}); });
} else if (localStorage) { } else if (localStorage) {
storeOpts.store = new MemoryStore({ localStorage }); storeOpts.store = new MemoryStore({ localStorage });