Skip to main content
Version: Current

SliceBuilder

@rotorsoft/act-root


@rotorsoft/act-root / act/src / SliceBuilder

Interface: SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes>

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

Fluent builder interface for composing functional slices.

Provides a chainable API for registering states and projections, and defining reactions scoped to the slice's own events.

Extends​

  • BuilderBase<SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes>, TEvents, TActions, TActor, TLanes>

Type Parameters​

TSchemaReg​

TSchemaReg extends SchemaRegister<TActions>

Schema register for states

TEvents​

TEvents extends Schemas

Event schemas

TActions​

TActions extends Schemas

Action schemas

TStateMap​

TStateMap extends Record<string, Schema> = { }

Map of state names to state schemas

TActor​

TActor extends Actor = Actor

Actor type extending base Actor

TLanes​

TLanes extends string = typeof DEFAULT_LANE

Properties​

build​

build: () => Slice<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes>

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

Builds and returns the Slice data structure.

Returns​

Slice<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes>


events​

readonly events: EventRegister<TEvents>

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

The registered event schemas and their reaction maps.

Inherited from​

BuilderBase.events


on​

on: <TKey>(event) => ReactionOn<SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes>, TEvents, TActions, TActor, TLanes, TKey>

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

Begins defining a reaction. Chain .do(...) to run immediately, or .defer(when).do(...) to hold the reaction until a schedule is due. .to(...) follows .do(...) in both cases and, for a deferred reaction, routes it onto its own target so the hold doesn't stall the stream's other reactions.

Type Parameters​

TKey​

TKey extends string | number | symbol

Parameters​

event​

TKey

Returns​

ReactionOn<SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes>, TEvents, TActions, TActor, TLanes, TKey>

Inherited from​

BuilderBase.on


withLane​

withLane: <TConfig>(config) => SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes | TConfig["name"]>

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

Declares a drain lane on this slice. Merged into the parent Act's lane set by act().withSlice(slice).

Type Parameters​

TConfig​

TConfig extends LaneConfig

Parameters​

config​

TConfig

Returns​

SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes | TConfig["name"]>


withProjection​

withProjection: <TNewEvents>(projection) => SliceBuilder

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

Registers a standalone projection. Its events must be a subset of events already registered via .withState() (or .withSlice() on the Act builder); handlers keep their (event, stream) signature.

Type Parameters​

TNewEvents​

TNewEvents extends Schemas

Parameters​

projection​

[Exclude<keyof TNewEvents, keyof TEvents>] extends [never] ? Projection<TNewEvents> : never

Returns​

SliceBuilder

Inherited from​

BuilderBase.withProjection


withState​

withState: <TNewState, TNewEvents, TNewActions, TNewName>(state) => SliceBuilder<TSchemaReg & { [K in string | number | symbol]: TNewState }, TEvents & TNewEvents, TActions & TNewActions, TStateMap & { [K in string]: TNewState }, TActor, TLanes>

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

Registers a state definition with the slice.

Include every state whose actions your reaction handlers need to dispatch. Duplicate registrations (same state in multiple slices) are handled automatically at composition time.

Type Parameters​

TNewState​

TNewState extends Schema

TNewEvents​

TNewEvents extends Schemas

TNewActions​

TNewActions extends Schemas

TNewName​

TNewName extends string = string

Parameters​

state​

State<TNewState, TNewEvents, TNewActions, TNewName>

Returns​

SliceBuilder<TSchemaReg & { [K in string | number | symbol]: TNewState }, TEvents & TNewEvents, TActions & TNewActions, TStateMap & { [K in string]: TNewState }, TActor, TLanes>