diff --git a/packages/fabric/domain/src/projections/projection.ts b/packages/fabric/domain/src/projections/projection.ts new file mode 100644 index 0000000..801b963 --- /dev/null +++ b/packages/fabric/domain/src/projections/projection.ts @@ -0,0 +1,13 @@ +import { VariantTag } from "@fabric/core"; +import { Event } from "../events/event.js"; +import { StoredEvent } from "../events/stored-event.js"; +import { Model, ModelToType } from "../models/model.js"; + +export interface Projection { + model: TModel; + events: TEvents[VariantTag][]; + projection: ( + event: StoredEvent, + model?: ModelToType, + ) => ModelToType; +}