repositoryBuilder
Last updated
Was this helpful?
Last updated
Was this helpful?
Takes a reducer and an adapter and returns a repository. A repository is the layer of our Onion Architecture (see ) which handles data persistence.
The write-model
repository has a single method called getById
. When invoked, it uses the adapter to load all events for given ID and runs them through the reducer to calculate the current state. It returns an object that contains state
and also a save
method, which is used to append new events.
build({ adapter, reducer })
builds a repository
attribute
type
description
adapter
object
reducer
function
a function which, given a list of events, knows how to calculate the current state of an object.
{ getById }
- an object with the getById
function.
getById(id)
Loads and returns the current state of an entity. Also returns a save
function for appending new events to the data store.
attribute
type
description
id
string
the id of the entity
{ state, save }
- an object containing an arbitrary state
object, and a save
function.
save(events)
Appends new events to the datastore
attribute
type
description
events
array
an array of arbitrary event objects
null
Any object which implements the write-model .