Skip to content

WebAdapterOptions

WebAdapterOptions = object

Defined in: packages/@livestore/adapter-web/src/web-worker/client-session/persisted-adapter.ts:54

optional clientId: string

Defined in: packages/@livestore/adapter-web/src/web-worker/client-session/persisted-adapter.ts:90

By default the adapter will initially generate a random clientId (via nanoid(5)), store it in localStorage and restore it for subsequent client sessions. It’s the same across all tabs/windows.


optional experimental: object

Defined in: packages/@livestore/adapter-web/src/web-worker/client-session/persisted-adapter.ts:96

optional awaitSharedWorkerTermination: boolean

Controls whether to wait for the shared worker to be terminated when LiveStore gets shut down. This prevents a race condition where a new LiveStore instance connects to a shutting-down shared worker from a previous instance.

false

In multi-tab scenarios, we don’t want to await shared worker termination because the shared worker won’t actually shut down when one tab closes - it stays alive to serve other tabs. Awaiting termination would cause unnecessary blocking since the termination will never happen until all tabs are closed.

optional disableFastPath: boolean

When set to true, the adapter will always start with a snapshot from the leader instead of trying to load a snapshot from storage.

false

optional resetPersistence: boolean

Defined in: packages/@livestore/adapter-web/src/web-worker/client-session/persisted-adapter.ts:85

Warning: This will reset both the app and eventlog database. This should only be used during development.

false

optional sessionId: string

Defined in: packages/@livestore/adapter-web/src/web-worker/client-session/persisted-adapter.ts:95

By default the adapter will initially generate a random sessionId (via nanoid(5)), store it in sessionStorage and restore it for subsequent client sessions in the same tab/window.


sharedWorker: (options) => globalThis.SharedWorker | (options) => globalThis.SharedWorker

Defined in: packages/@livestore/adapter-web/src/web-worker/client-session/persisted-adapter.ts:70

This is mostly an implementation detail and needed to be exposed into app code due to a current Vite limitation (https://github.com/vitejs/vite/issues/8427).

In most cases this should look like:

import LiveStoreSharedWorker from '@livestore/adapter-web/shared-worker?sharedworker'
const adapter = makePersistedAdapter({
sharedWorker: LiveStoreSharedWorker,
// ...
})

storage: StorageTypeEncoded

Defined in: packages/@livestore/adapter-web/src/web-worker/client-session/persisted-adapter.ts:78

Specifies where to persist data for this adapter


worker: (options) => globalThis.Worker | (options) => globalThis.Worker

Defined in: packages/@livestore/adapter-web/src/web-worker/client-session/persisted-adapter.ts:55