Changeset View
Changeset View
Standalone View
Standalone View
web/database/worker/web-db-worker.js
// @flow | // @flow | ||||
import localforage from 'localforage'; | |||||
import { type SharedWorkerMessageEvent } from '../../types/worker-types.js'; | import { type SharedWorkerMessageEvent } from '../../types/worker-types.js'; | ||||
const localforageConfig: PartialConfig = { | |||||
driver: localforage.INDEXEDDB, | |||||
name: 'comm', | |||||
storeName: 'commStorage', | |||||
description: 'Comm encrypted database storage', | |||||
version: '1.0', | |||||
tomek: Is this version used e.g. for migrations? | |||||
kamilAuthorUnsubmitted Done Inline ActionsIt can be, but we won't use it for this purpose. For database (SQLite) versioning, we will use the same pattern as on native (PRAGMA user_version;). IndexedDB will be a key-value store with two keys and I don't think it'll ever need to migrate - if so I would introduce the keyserver's approach with an additional metadata key. Updating this version here will result in calling native callback upgradeneeded, but it's not that good, and locaforage as well as other similar libs does not supper this. kamil: It can be, but we won't use it for this purpose.
For database (SQLite) versioning, we will use… | |||||
}; | |||||
localforage.config(localforageConfig); | |||||
function connectHandler(event: SharedWorkerMessageEvent) { | function connectHandler(event: SharedWorkerMessageEvent) { | ||||
const port: MessagePort = event.ports[0]; | const port: MessagePort = event.ports[0]; | ||||
console.log('Web database worker alive!'); | console.log('Web database worker alive!'); | ||||
port.onmessage = async function (messageEvent: MessageEvent) { | port.onmessage = async function (messageEvent: MessageEvent) { | ||||
console.log('message from main thread: ', messageEvent.data); | console.log('message from main thread: ', messageEvent.data); | ||||
port.postMessage({ message: 'response from worker' }); | port.postMessage({ message: 'response from worker' }); | ||||
}; | }; | ||||
} | } | ||||
self.addEventListener('connect', connectHandler); | self.addEventListener('connect', connectHandler); |
Is this version used e.g. for migrations?