Skip to main content

ProjectionBuilder

@rotorsoft/act-root


@rotorsoft/act-root / act/src / ProjectionBuilder

Type Alias: ProjectionBuilder<TEvents, TTarget>

ProjectionBuilder<TEvents, TTarget> = object & TTarget extends string ? object : object

Defined in: libs/act/src/projection-builder.ts:65

Fluent builder interface for composing projections.

When a static target is provided via projection("target"), the builder exposes a .batch() method for registering a batch handler that processes all events in a single call.

Type Declaration

build

build: () => Projection<TEvents>

Builds and returns the Projection data structure.

Returns

Projection<TEvents>

events

readonly events: EventRegister<TEvents>

The registered event schemas and their reaction maps.

on

on: <TKey, TData>(entry) => object

Begins defining a projection handler for a specific event.

Pass a { EventName: schema } record — use shorthand { EventName } when the variable name matches the event name. The key becomes the event name, the value the Zod schema.

Type Parameters

TKey

TKey extends string

TData

TData extends Schema

Parameters

entry

EventEntry<TKey, TData>

Returns

object

do

do: (handler) => DoResult<TEvents, TKey, TData, TTarget>

Parameters
handler

(event, stream) => Promise<void>

Returns

DoResult<TEvents, TKey, TData, TTarget>

Type Parameters

TEvents

TEvents extends Schemas

Event schemas

TTarget

TTarget extends string | undefined = undefined

Static target string or undefined