Mirror / foldkit-mirror

KvMirror

interface · packages/mirror/src/index.ts:555

interface KvMirror<
  AppModel,
  Value extends Record<string, unknown>,
  Name extends string = string,
> extends Mirror<AppModel, Value, KeyValueStore.KeyValueStore, Name> {
  readonly kind: 'kv'
  readonly reduce: (model: AppModel, message: MirrorRestored) => AppModel
  readonly wiring: () => KvMirrorWiring<AppModel>
}

A slice kept in Effect's KeyValueStore.

Members

KvMirror.kind

property · packages/mirror/src/index.ts:560

readonly kind: 'kv'

KvMirror.reduce

property · packages/mirror/src/index.ts:562

readonly reduce: (model: AppModel, message: MirrorRestored) => AppModel

The Model with a MirrorRestored for this mirror applied: restoreKeys; another mirror's is ignored.

KvMirror.wiring

property · packages/mirror/src/index.ts:568

readonly wiring: () => KvMirrorWiring<AppModel>

How this mirror joins an assembly: it routes its own MirrorRestored into reduce, runs restore at startup, and brings its Subscriptions and contract. Other key-value mirrors share the MirrorRestored tag.