@idpass/data-collect-core / EventApplier
Interface: EventApplier
Defined in: interfaces/types.ts:415
Event applier interface for transforming events into entity state changes.
Core component of the event sourcing system that knows how to apply specific event types to entities. Custom event appliers can be registered for domain-specific operations.
Example
const customApplier: EventApplier = {
apply: async (entity, form, getEntity, saveEntity) => {
if (form.type === 'custom-operation') {
const updatedEntity = { ...entity, data: { ...entity.data, ...form.data } };
return updatedEntity;
}
throw new Error(`Unsupported event type: ${form.type}`);
}
};
Methods
apply()
apply(
entity,form,getEntity,saveEntity):Promise<EntityDoc>
Defined in: interfaces/types.ts:425
Apply an event (form submission) to an entity to produce the new state.
Parameters
entity
The current entity state
form
The form submission/event to apply
getEntity
(id) => Promise<EntityPair | null>
Function to retrieve related entities
saveEntity
(action, existingEntity, modifiedEntity, changes) => Promise<void>
Function to save entity changes
Returns
Promise<EntityDoc>
The updated entity after applying the event