clientOnly
constclientOnly: <TName,TType,TEncoded>(args) =>EventDef<TName,TType,TEncoded>
Defined in: packages/@livestore/common/dist/schema/EventDef/define.d.ts:143
Creates a client-only event definition.
Client-only events are synced within the same client’s sessions (e.g., across browser tabs) but are never sent to the sync backend. Use this for local UI state like selected items, filter settings, or draft content.
Note: Client-only events still require materializers and are stored in the local eventlog, they just don’t participate in server-side sync.
Type Parameters
Section titled “Type Parameters”TName extends string
TType
TEncoded
Section titled “TEncoded”TEncoded = TType
Parameters
Section titled “Parameters”object & Omit<DefineEventOptions<TType, false>, "derived" | "clientOnly">
Returns
Section titled “Returns”EventDef<TName, TType, TEncoded>
Example
Section titled “Example”import { Events } from '@livestore/livestore'import { Schema } from 'effect'
const uiStateSet = Events.clientOnly({ name: 'UiStateSet', schema: Schema.Struct({ selectedTodoId: Schema.NullOr(Schema.String), filterMode: Schema.Literal('all', 'active', 'completed'), }),})
// Update local UI statestore.commit(uiStateSet({ selectedTodoId: 'abc', filterMode: 'active' }))