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/builders/projection-builder.ts:63

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