diff --git a/packages/store/src/index.ts b/packages/store/src/index.ts index 2540476..3eecb58 100644 --- a/packages/store/src/index.ts +++ b/packages/store/src/index.ts @@ -97,7 +97,10 @@ export const throttled = (delay: number, store: Readable) => // Event related stores -export const createEventStore = (repository: Repository): Writable => { +export const createEventStore = ( + repository: Repository, + migrate?: (events: TrustedEvent[]) => TrustedEvent[], +): Writable => { let subs: Subscriber[] = [] const onUpdate = () => { @@ -108,9 +111,17 @@ export const createEventStore = (repository: Repository): Writable { + if (migrate) { + events = migrate(events) + } + + repository.load(events) + } + return { - set: (events: TrustedEvent[]) => repository.load(events), - update: (f: Updater) => repository.load(f(repository.dump())), + set: (events: TrustedEvent[]) => setEvents(events), + update: (f: Updater) => setEvents(f(repository.dump())), subscribe: (f: Subscriber) => { f(repository.dump())