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