SliceBuilder
@rotorsoft/act-root / act/src / SliceBuilder
Type Alias: SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes>
SliceBuilder<
TSchemaReg,TEvents,TActions,TStateMap,TActor,TLanes> =object
Defined in: libs/act/src/builders/slice-builder.ts:80
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.
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/builders/slice-builder.ts:172
Builds and returns the Slice data structure.
Returnsโ
Slice<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes>
eventsโ
readonlyevents:EventRegister<TEvents>
Defined in: libs/act/src/builders/slice-builder.ts:176
The registered event schemas and their reaction maps.
onโ
on: <
TKey>(event) =>object
Defined in: libs/act/src/builders/slice-builder.ts:139
Begins defining a reaction scoped to this slice's events.
Type Parametersโ
TKeyโ
TKey extends keyof TEvents
Parametersโ
eventโ
TKey
Returnsโ
object
doโ
do: (
handler,options?) =>SliceBuilder<TSchemaReg,TEvents,TActions,TStateMap,TActor,TLanes> &object
Parametersโ
handlerโ
(event, stream, app) => Promise<Snapshot<Schema, TEvents> | void>
options?โ
Partial<ReactionOptions>
Returnsโ
SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes> & object
withLaneโ
withLane: <
TConfig>(config) =>SliceBuilder<TSchemaReg,TEvents,TActions,TStateMap,TActor,TLanes|TConfig["name"]>
Defined in: libs/act/src/builders/slice-builder.ts:126
Declares a drain lane on this slice (ACT-1103). 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<TSchemaReg,TEvents,TActions,TStateMap,TActor,TLanes>
Defined in: libs/act/src/builders/slice-builder.ts:117
Embeds a built Projection within this slice. The projection's events
must be a subset of events from states already registered via
.withState(). Projection handlers preserve their (event, stream)
signature and do not receive the app interface.
Type Parametersโ
TNewEventsโ
TNewEvents extends Schemas
Parametersโ
projectionโ
[Exclude<keyof TNewEvents, keyof TEvents>] extends [never] ? Projection<TNewEvents> : never
Returnsโ
SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor, TLanes>
withStateโ
withState: <
TNewState,TNewEvents,TNewActions,TNewName>(state) =>SliceBuilder<TSchemaReg&{ [K in keyof TNewActions]: TNewState },TEvents&TNewEvents,TActions&TNewActions,TStateMap&{ [K in TNewName]: TNewState },TActor,TLanes>
Defined in: libs/act/src/builders/slice-builder.ts:96
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 keyof TNewActions]: TNewState }, TEvents & TNewEvents, TActions & TNewActions, TStateMap & { [K in TNewName]: TNewState }, TActor, TLanes>