SliceBuilder
@rotorsoft/act-root / act/src / SliceBuilder
Type Alias: SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor>
SliceBuilder<
TSchemaReg,TEvents,TActions,TStateMap,TActor> =object
Defined in: libs/act/src/slice-builder.ts:69
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
Properties
build()
build: () =>
Slice<TSchemaReg,TEvents,TActions,TStateMap,TActor>
Defined in: libs/act/src/slice-builder.ts:138
Builds and returns the Slice data structure.
Returns
Slice<TSchemaReg, TEvents, TActions, TStateMap, TActor>
events
readonlyevents:EventRegister<TEvents>
Defined in: libs/act/src/slice-builder.ts:142
The registered event schemas and their reaction maps.
on()
on: <
TKey>(event) =>object
Defined in: libs/act/src/slice-builder.ts:112
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> &object
Parameters
handler
(event, stream, app) => Promise<Snapshot<Schema, TEvents> | void>
options?
Partial<ReactionOptions>
Returns
SliceBuilder<TSchemaReg, TEvents, TActions, TStateMap, TActor> & object
withProjection()
withProjection: <
TNewEvents>(projection) =>SliceBuilder<TSchemaReg,TEvents,TActions,TStateMap,TActor>
Defined in: libs/act/src/slice-builder.ts:104
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 a Dispatcher.
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>
withState()
withState: <
TNewState,TNewEvents,TNewActions,TNewName>(state) =>SliceBuilder<TSchemaReg&{ [K in keyof TNewActions]: TNewState },TEvents&TNewEvents,TActions&TNewActions,TStateMap&{ [K in TNewName]: TNewState },TActor>
Defined in: libs/act/src/slice-builder.ts:84
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>