Skip to content

createOptimisticEventSchema

const createOptimisticEventSchema: ({ valueSchema, defaultValue, partialSet, }) => Schema.transform<typeof Schema.Unknown, Schema.Schema<any, any, never> | Schema.SchemaClass<{[x: string]: any; }, {[x: string]: any; }, never>>

Defined in: packages/@livestore/common/dist/schema/state/sqlite/client-document-def.d.ts:56

Creates an optimistic schema that accepts historical event formats and transforms them to the current schema, preserving data and intent.

Decision Matrix for Schema Changes:

Change TypePartial SetFull SetStrategy
Compatible Changes
Add optional fieldPreserve existingPreserve existing, new field undefinedDirect decode or merge
Add required fieldPreserve existingPreserve existing, new field from defaultMerge with defaults
Incompatible Changes
Remove fieldDrop removed fieldDrop removed field, preserve othersFilter & decode
Type changeUse default for fieldUse default for changed fieldSelective merge
Rename fieldUse defaultUse default (can’t detect rename)Fall back to default
Edge Cases
Empty eventReturn {}Return full defaultFallback handling
Invalid structureReturn {}Return full defaultFallback handling

{ valueSchema, defaultValue, partialSet, }

Section titled “{ valueSchema, defaultValue, partialSet, }”

any

boolean

Schema.Schema<any, any>

Schema.transform<typeof Schema.Unknown, Schema.Schema<any, any, never> | Schema.SchemaClass<{[x: string]: any; }, {[x: string]: any; }, never>>