StateMachine
Defined in: state-machine.ts:26
StateMachine interface defines the contract for all state machine implementations in Matchina. It includes core lifecycle methods and hooks for managing state transitions, event handling, and side effects.
See also:
- FactoryMachine and createMachine for strongly-typed factory-based state machines.
Lifecycle steps:
send(type, ...params)
- Initiates a transition event.resolveExit(ev)
- Determines the target state for the event.transition(ev)
- Triggers the transition lifecycle, handling all steps for processing a change event.guard(ev)
- Checks if the transition is allowed.handle(ev)
- Processes the event, may abort if returns undefined.before(ev)
- Prepares for state change, may abort if returns undefined.update(ev)
- Applies the state update.effect(ev)
- Runs side effects, calls leave/enter hooks.leave(ev)
- Called when leaving the previous state.enter(ev)
- Called when entering the new state.notify(ev)
- Notifies subscribers of the change.after(ev)
- Final hook after transition completes.
Extends
Section titled “Extends”Type Parameters
Section titled “Type Parameters”Type Parameter | Default type |
---|---|
E extends TransitionEvent | TransitionEvent |
Methods
Section titled “Methods”transition()
Section titled “transition()”transition(
change
:E
):void
Defined in: event-lifecycle.ts:28
Triggers the transition lifecycle, handling all steps for processing a change event.
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
change | E |
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”guard()
Section titled “guard()”guard(
ev
:E
):boolean
Defined in: event-lifecycle.ts:32
Checks if a transition event is allowed to proceed. Returns true to continue, false to abort.
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | E |
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”handle()
Section titled “handle()”handle(
ev
:E
):undefined
|E
Defined in: event-lifecycle.ts:36
Processes the event. May abort the transition if returns undefined.
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | E |
Returns
Section titled “Returns”undefined
| E
Inherited from
Section titled “Inherited from”before()
Section titled “before()”before(
ev
:E
):undefined
|E
Defined in: event-lifecycle.ts:41
Called before the transition is applied. May abort if returns undefined. (Represents a beforeTransition hook, not state entry/exit.)
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | E |
Returns
Section titled “Returns”undefined
| E
Inherited from
Section titled “Inherited from”update()
Section titled “update()”update(
ev
:E
):void
Defined in: event-lifecycle.ts:45
Applies the state update.
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | E |
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”effect()
Section titled “effect()”effect(
ev
:E
):void
Defined in: event-lifecycle.ts:49
Runs side effects for the transition. By default, calls leave
and enter
hooks.
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | E |
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”leave()
Section titled “leave()”leave(
ev
:E
):void
Defined in: event-lifecycle.ts:53
Called when leaving the previous state.
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | E |
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”enter()
Section titled “enter()”enter(
ev
:E
):void
Defined in: event-lifecycle.ts:57
Called when entering the new state.
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | E |
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”notify()
Section titled “notify()”notify(
ev
:E
):void
Defined in: event-lifecycle.ts:61
Notifies subscribers of the change.
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | E |
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”after()
Section titled “after()”after(
ev
:E
):void
Defined in: event-lifecycle.ts:65
Final hook after transition completes. (Represents afterTransition, not state entry/exit.)
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | E |
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”getState()
Section titled “getState()”getState():
E
["to"
] |E
["from"
]
Defined in: state-machine.ts:31
Returns the current state of the machine (the to
property of the last change).
Returns
Section titled “Returns”E
["to"
] | E
["from"
]
getChange()
Section titled “getChange()”getChange():
E
Defined in: state-machine.ts:35
Returns the last change event, including type, from, and to states.
Returns
Section titled “Returns”E
resolveExit()
Section titled “resolveExit()”resolveExit(
ev
:ResolveEvent
<E
>):undefined
|E
Defined in: state-machine.ts:45
Determines the target (“to”) state for a new event. Returns undefined for early exit.
Typically looks up transitions using machine.transitions[ev.from.key][ev.type]
.
Parameters
Section titled “Parameters”Parameter | Type |
---|---|
ev | ResolveEvent <E > |
Returns
Section titled “Returns”undefined
| E