Skip to main content
Version: Current

ProjectionBuilder

@rotorsoft/act-root


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

Type Alias: ProjectionBuilder<TEvents, TTarget, THasHandlers>

ProjectionBuilder<TEvents, TTarget, THasHandlers> = object & (TTarget extends string ? object & (THasHandlers extends false ? object : object) : object)

Defined in: libs/act/src/types/builders.ts:1213

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 Parameters​

TEvents​

TEvents extends Schemas

Event schemas

TTarget​

TTarget extends string | undefined = undefined

Static target string or undefined

THasHandlers​

THasHandlers extends boolean = false

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>