SliceBuilder
@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
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
readonlyevents: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>