diff --git a/web/database/worker/db-worker.js b/web/database/worker/db-worker.js --- a/web/database/worker/db-worker.js +++ b/web/database/worker/db-worker.js @@ -17,6 +17,7 @@ workerRequestMessageTypes, workerResponseMessageTypes, type WorkerRequestProxyMessage, + workerWriteRequests, } from '../../types/worker-types.js'; import { getSQLiteDBVersion, setupSQLiteDB } from '../queries/db-queries.js'; import { @@ -198,32 +199,28 @@ } // write operations + if (!workerWriteRequests.includes(message.type)) { + throw new Error('Request type not supported'); + } + if (message.type === workerRequestMessageTypes.PROCESS_STORE_OPERATIONS) { const { draftStoreOperations } = message.storeOperations; if (draftStoreOperations) { processDraftStoreOperations(draftStoreOperations); } - throttledPersist(); - return; } else if (message.type === workerRequestMessageTypes.SET_CURRENT_USER_ID) { setMetadata(sqliteDb, CURRENT_USER_ID_KEY, message.userID); - throttledPersist(); - return; } else if ( message.type === workerRequestMessageTypes.SET_PERSIST_STORAGE_ITEM ) { setPersistStorageItem(sqliteDb, message.key, message.item); - throttledPersist(); - return; } else if ( message.type === workerRequestMessageTypes.REMOVE_PERSIST_STORAGE_ITEM ) { removePersistStorageItem(sqliteDb, message.key); - throttledPersist(); - return; } - throw new Error('Request type not supported'); + throttledPersist(); } function connectHandler(event: SharedWorkerMessageEvent) { diff --git a/web/types/worker-types.js b/web/types/worker-types.js --- a/web/types/worker-types.js +++ b/web/types/worker-types.js @@ -19,6 +19,13 @@ REMOVE_PERSIST_STORAGE_ITEM: 9, }); +export const workerWriteRequests: $ReadOnlyArray = [ + workerRequestMessageTypes.PROCESS_STORE_OPERATIONS, + workerRequestMessageTypes.SET_CURRENT_USER_ID, + workerRequestMessageTypes.SET_PERSIST_STORAGE_ITEM, + workerRequestMessageTypes.REMOVE_PERSIST_STORAGE_ITEM, +]; + export type PingWorkerRequestMessage = { +type: 0, +text: string,