RegistryStoreOptions
Defined in: packages/@livestore/livestore/src/store/StoreRegistry.ts:49
Configuration options for stores managed by a StoreRegistry.
Extends CreateStoreOptions with registry-specific settings for caching and observability. Use with storeOptions helper to get full type inference when defining reusable store configurations.
- storeOptions for defining reusable store configurations
- StoreRegistry for managing store lifecycles
Extends
Section titled “Extends”CreateStoreOptions<TSchema,TContext,TSyncPayloadSchema>
Type Parameters
Section titled “Type Parameters”TSchema
Section titled “TSchema”TSchema extends LiveStoreSchema = Any
The LiveStore schema type
TContext
Section titled “TContext”TContext = { }
User-defined context attached to the store
TSyncPayloadSchema
Section titled “TSyncPayloadSchema”TSyncPayloadSchema extends Schema.Codec<Schema.Json, Schema.Json> = typeof Schema.Json
Schema for the sync payload sent to the backend
Properties
Section titled “Properties”adapter
Section titled “adapter”adapter:
Adapter
Defined in: packages/@livestore/livestore/src/store/create-store.ts:151
Adapter used for data storage and synchronization.
Inherited from
Section titled “Inherited from”batchUpdates()?
Section titled “batchUpdates()?”
optionalbatchUpdates: (run) =>void
Defined in: packages/@livestore/livestore/src/store/create-store.ts:184
Needed in React so LiveStore can apply multiple events in a single render.
Parameters
Section titled “Parameters”() => void
Returns
Section titled “Returns”void
Example
Section titled “Example”// With React DOMimport { unstable_batchedUpdates as batchUpdates } from 'react-dom'
// With React Nativeimport { unstable_batchedUpdates as batchUpdates } from 'react-native'Inherited from
Section titled “Inherited from”CreateStoreOptions.batchUpdates
boot()?
Section titled “boot()?”
optionalboot: (store,ctx) =>SyncOrPromiseOrEffect<void,unknown,OtelTracer|LiveStoreContextRunning>
Defined in: packages/@livestore/livestore/src/store/create-store.ts:164
Parameters
Section titled “Parameters”Store<TSchema, TContext>
migrationsReport
Section titled “migrationsReport”MigrationsReport
parentSpan
Section titled “parentSpan”Span
Returns
Section titled “Returns”SyncOrPromiseOrEffect<void, unknown, OtelTracer | LiveStoreContextRunning>
Inherited from
Section titled “Inherited from”confirmUnsavedChanges?
Section titled “confirmUnsavedChanges?”
optionalconfirmUnsavedChanges:boolean
Defined in: packages/@livestore/livestore/src/store/create-store.ts:198
Currently only used in the web adapter: If true, registers a beforeunload event listener to confirm unsaved changes.
Default
Section titled “Default”trueInherited from
Section titled “Inherited from”CreateStoreOptions.confirmUnsavedChanges
context?
Section titled “context?”
optionalcontext:TContext
Defined in: packages/@livestore/livestore/src/store/create-store.ts:163
User-defined context that will be attached to the created Store (e.g. for dependency injection).
Inherited from
Section titled “Inherited from”debug?
Section titled “debug?”
optionaldebug:object
Defined in: packages/@livestore/livestore/src/store/create-store.ts:224
instanceId?
Section titled “instanceId?”
optionalinstanceId:string
Inherited from
Section titled “Inherited from”disableDevtools?
Section titled “disableDevtools?”
optionaldisableDevtools:boolean|"auto"
Defined in: packages/@livestore/livestore/src/store/create-store.ts:190
Whether to disable devtools.
Default
Section titled “Default”'auto'Inherited from
Section titled “Inherited from”CreateStoreOptions.disableDevtools
logger?
Section titled “logger?”
optionallogger:Layer<never,never,never>
Defined in: packages/@livestore/common/dist/logging.d.ts:11
Optional Effect logger layer to control logging output.
Inherited from
Section titled “Inherited from”logLevel?
Section titled “logLevel?”
optionallogLevel:LogLevel
Defined in: packages/@livestore/common/dist/logging.d.ts:13
Optional minimum log level for the runtime.
Inherited from
Section titled “Inherited from”onBootStatus()?
Section titled “onBootStatus()?”
optionalonBootStatus: (status) =>void
Defined in: packages/@livestore/livestore/src/store/create-store.ts:171
Parameters
Section titled “Parameters”status
Section titled “status”ReadonlySide<{ stage: Literal<"loading">; }, "Type"> | ReadonlySide<{ progress: Struct<{ done: Finite; total: Finite; }>; stage: Literal<"migrating">; }, "Type"> | ReadonlySide<{ progress: Struct<{ done: Finite; total: Finite; }>; stage: Literal<"rehydrating">; }, "Type"> | ReadonlySide<{ progress: Struct<{ done: Finite; total: Finite; }>; stage: Literal<"syncing">; }, "Type"> | ReadonlySide<{ stage: Literal<"done">; }, "Type"> | ReadonlySide<{ message: String; reason: Literals<readonly ["private-browsing", "storage-unavailable", "unknown"]>; stage: Literal<"warning">; }, "Type">
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”CreateStoreOptions.onBootStatus
otelOptions?
Section titled “otelOptions?”
optionalotelOptions:Partial<OtelOptions>
Defined in: packages/@livestore/livestore/src/store/StoreRegistry.ts:60
OpenTelemetry configuration for tracing store operations.
When provided, store operations (boot, queries, commits) will be traced under the given root span context using the specified tracer.
params?
Section titled “params?”
optionalparams:object
Defined in: packages/@livestore/livestore/src/store/create-store.ts:218
Options provided to the Store constructor.
eventQueryBatchSize?
Section titled “eventQueryBatchSize?”
optionaleventQueryBatchSize:number
Chunk size used when the stream replays confirmed events.
leaderPushBatchSize?
Section titled “leaderPushBatchSize?”
optionalleaderPushBatchSize:number
Max events pushed to the leader per write batch.
Inherited from
Section titled “Inherited from”schema
Section titled “schema”schema:
TSchema
Defined in: packages/@livestore/livestore/src/store/create-store.ts:149
The LiveStore schema defining tables, events, and materializers.
Inherited from
Section titled “Inherited from”shutdownDeferred?
Section titled “shutdownDeferred?”
optionalshutdownDeferred:ShutdownDeferred
Defined in: packages/@livestore/livestore/src/store/create-store.ts:191
Inherited from
Section titled “Inherited from”CreateStoreOptions.shutdownDeferred
storeId
Section titled “storeId”storeId:
string
Defined in: packages/@livestore/livestore/src/store/create-store.ts:161
Unique identifier for the Store instance, stable for its lifetime.
- Valid characters: Only alphanumeric characters, underscores (
_), and hyphens (-) are allowed. Must match/^[a-zA-Z0-9_-]+$/. - Globally unique: Use globally unique IDs (e.g., nanoid) to prevent collisions across stores.
- Use namespaces: Prefix to avoid collisions and for easier identification when debugging
(e.g.,
app-root,workspace-abc123,issue-456)
Inherited from
Section titled “Inherited from”syncPayload?
Section titled “syncPayload?”
optionalsyncPayload:TSyncPayloadSchema["Type"]
Defined in: packages/@livestore/livestore/src/store/create-store.ts:216
Payload that is sent to the sync backend when connecting
- Its TypeScript type is inferred from
syncPayloadSchema(i.e.typeof SyncPayload.Type). - At runtime this value is encoded with
syncPayloadSchemaand carried through the adapter to the backend where it can be decoded with the same schema.
Default
Section titled “Default”undefinedInherited from
Section titled “Inherited from”CreateStoreOptions.syncPayload
syncPayloadSchema?
Section titled “syncPayloadSchema?”
optionalsyncPayloadSchema:TSyncPayloadSchema
Defined in: packages/@livestore/livestore/src/store/create-store.ts:206
Schema describing the shape of the sync payload and used to encode it.
- If omitted,
Schema.Jsonis used (no additional typing/validation). - Prefer exporting a schema from your app (e.g.
export const SyncPayload = Schema.Struct({ authToken: Schema.String })) and pass it here to get end-to-end type safety and validation.
Inherited from
Section titled “Inherited from”CreateStoreOptions.syncPayloadSchema
unusedCacheTime?
Section titled “unusedCacheTime?”
optionalunusedCacheTime:number
Defined in: packages/@livestore/livestore/src/store/StoreRegistry.ts:81
The time in milliseconds that this store should remain in memory after becoming unused. When this store becomes unused (no active retentions), it will be disposed after this duration.
Stores transition to the unused state as soon as they have no active retentions, so when all components which use that store have unmounted.
Remarks
Section titled “Remarks”- Per-store values override the registry-level default (set via
StoreRegistryconstructor’sdefaultOptions.unusedCacheTime) - The value is fixed when the store is first loaded into the registry. If the same
storeIdis requested again with a differentunusedCacheTime, the original value is kept. - If set to
Infinity, will disable automatic disposal - The maximum allowed time is about 24 days
Default Value
Section titled “Default Value”60_000 (60 seconds) or Infinity during SSR to avoid
disposing stores before server render completes.