Machine
Machine:
object
Defined in: Core/Machine.ts:181
Type Declaration
Section titled “Type Declaration”interpret
Section titled “interpret”interpret: <
States,Events>(machine,options?) =>MachineActor<States,Events>
Spawns an execution actor for a machine.
Manages active state lifecycles:
- Runs
entryeffects on state entry, providing anAbortSignaland guardedsend. - Automatically aborts active controllers and executes cleanup disposers when exiting a state.
- Suppresses stale async dispatches from previously active states.
- Queues re-entrant
sendcalls to preserve sequential transition semantics. - Optionally synchronizes with an EventBus.
Type Parameters
Section titled “Type Parameters”States
Section titled “States”States extends WithKind<string> & object
Events
Section titled “Events”Events extends Record<string, unknown>
Parameters
Section titled “Parameters”machine
Section titled “machine”Machine<States, Events>
options?
Section titled “options?”MachineInterpretOptions<States, Events>
Returns
Section titled “Returns”MachineActor<States, Events>
Machine.transition for pure stateless transitions.
Example
Section titled “Example”is: <
K>(kind) => <S>(state) =>state is Extract<S, { kind: K }>
Curried type guard that refines a state to a specific variant kind.
Type Parameters
Section titled “Type Parameters”K extends string
Parameters
Section titled “Parameters”K
Returns
Section titled “Returns”<S>(state) => state is Extract<S, { kind: K }>
Example
Section titled “Example”make: <
States,Events>(config) =>Machine<States,Events>
Creates a validated, immutable state machine definition.
Type Parameters
Section titled “Type Parameters”States
Section titled “States”States extends WithKind<string> & object
Events
Section titled “Events”Events extends Record<string, unknown>
Parameters
Section titled “Parameters”config
Section titled “config”string
initial
Section titled “initial”States
states
Section titled “states”MachineTransitionTable<States, Events>
Returns
Section titled “Returns”Machine<States, Events>
Example
Section titled “Example”match: <
States,R>(cases) => (state) =>R
Curried exhaustive pattern matcher across all state variants of a machine.
Type Parameters
Section titled “Type Parameters”States
Section titled “States”States extends WithKind<string> & object
R
Parameters
Section titled “Parameters”{ readonly [K in string]: (state: Extract<States, { kind: K }>) => R }
Returns
Section titled “Returns”(state) => R
Example
Section titled “Example”state: {<
Kind>(kind):WithKind<Kind> &object; <Kind,Data>(kind,value):MachineState<Kind,Data,string>; } =makeState
Constructs a state variant without requiring manual type assertions.
Call Signature
Section titled “Call Signature”<
Kind>(kind):WithKind<Kind> &object
Type Parameters
Section titled “Type Parameters”Kind extends string
Parameters
Section titled “Parameters”Kind
Returns
Section titled “Returns”WithKind<Kind> & object
Call Signature
Section titled “Call Signature”<
Kind,Data>(kind,value):MachineState<Kind,Data,string>
Type Parameters
Section titled “Type Parameters”Kind extends string
Data
Parameters
Section titled “Parameters”Kind
Data
Returns
Section titled “Returns”MachineState<Kind, Data, string>
Example
Section titled “Example”to:
object
Converters to standard external runtime structures.
to.reducer
Section titled “to.reducer”reducer: <
States,Events>(machine) => (state,event) =>States
Converts a state machine into an uncurried reducer function (state, event) => nextState
directly compatible with React useReducer and Redux.
If state is undefined (such as during Redux store initialization),
defaults to machine.initial.
Type Parameters
Section titled “Type Parameters”States
Section titled “States”States extends WithKind<string> & object
Events
Section titled “Events”Events extends Record<string, unknown>
Parameters
Section titled “Parameters”machine
Section titled “machine”Machine<States, Events>
Returns
Section titled “Returns”(state, event) => States
Machine.transition for pure, curried data-last pipeline transitions.
Example
Section titled “Example”transition
Section titled “transition”transition: <
States,Events>(machine,event) => (state) =>States
Pure, data-last transition function. Evaluates a transition on the provided state and returns the next state without executing lifecycle side effects.
If the state does not handle the event, the current state is returned unchanged.
Type Parameters
Section titled “Type Parameters”States
Section titled “States”States extends WithKind<string> & object
Events
Section titled “Events”Events extends Record<string, unknown>
Parameters
Section titled “Parameters”machine
Section titled “machine”Machine<States, Events>
MachineEventMessage<Events>
Returns
Section titled “Returns”(state) => States
Machine.interpret to run a stateful actor with async lifecycle effects.