Skip to content

defaultsAdapter

defaultsAdapter<E>(spec): EventAdapter<E, E>

Defined in: src/persistence/migration/defaultsAdapter.ts:50

Build an EventAdapter that handles purely additive evolution: every step from the stored version up to currentVersion merges in a fixed set of default field values for the fields added at that step.

// v1 → v2 added a currency: 'USD' | 'EUR' field const adapter = defaultsAdapter({ manifest: ‘BankAccount.Deposited’, currentVersion: 2, defaults: { 1: { currency: ‘USD’ } }, });

Limitations — this helper only handles adding new fields with constant defaults. Renames, type changes, splits, merges, derived fields all require a hand-written MigrationChain. When in doubt, write the chain.

E extends object

DefaultsAdapterSpec<E>

EventAdapter<E, E>