• Public
  • Public/Protected
  • All

Interface StateNodeConfig<TContext, TStateSchema, TEvent>

Type parameters




Optional activities

activities: SingleOrArray<Activity<TContext, TEvent>>

The activities to be started upon entering the state node, and stopped upon exiting the state node.

Optional after

after: DelayedTransitions<TContext, TEvent>

The mapping (or array) of delays (in milliseconds) to their potential transition(s). The delayed transitions are taken after the specified delay in an interpreter.

Optional always

always: TransitionConfigOrTarget<TContext, TEvent>

An eventless transition that is always taken when this state node is active. Equivalent to a transition specified as an empty ''' string in the on property.

Optional context

context: TContext | (() => TContext)

The initial context (extended state) of the machine.

Can be an object or a function that returns an object.

Optional data

data: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>

The data sent with the "done.state.id" event if this is a final state node.

The data will be evaluated with the current context and placed on the .data property of the event.

Optional delimiter

delimiter: undefined | string

The string delimiter for serializing the path to a string. The default is "."

Optional entry

entry: Array<ActionObject<any, any>>

The action(s) to be executed upon entering the state node.

Optional exit

exit: Array<ActionObject<any, any>>

The action(s) to be executed upon exiting the state node.

Optional history

history: "shallow" | "deep" | boolean | undefined

Indicates whether the state node is a history state node, and what type of history: shallow, deep, true (shallow), false (none), undefined (none)

Optional id

id: string

The unique ID of the state node, which can be referenced as a transition target via the #id syntax.

Optional initial

initial: undefined | string

The initial state node key.

Optional invoke

invoke: Array<InvokeDefinition<any, any>>

The services to invoke upon entering this state node. These services will be stopped upon exiting this state node.

Optional key

key: string

The relative key of the state node, which represents its location in the overall state value. This is automatically determined by the configuration shape via the key where it was defined.

Optional meta

meta: TStateSchema extends { meta: infer D } ? D : any

The meta data associated with this state node, which will be returned in State instances.

Optional on

on: {}

The mapping of event types to their potential transition(s).

Type declaration

  • [key: string]: TransitionConfig[]

Optional onDone

onDone: string | SingleOrArray<TransitionConfig<TContext, DoneEventObject>>

The potential transition(s) to be taken upon reaching a final child state node.

This is equivalent to defining a [done(id)] transition on this state node's on property.

Optional onEntry

onEntry: Actions<TContext, TEvent>

The action(s) to be executed upon entering the state node.


Use entry instead.

Optional onExit

onExit: Actions<TContext, TEvent>

The action(s) to be executed upon exiting the state node.


Use exit instead.

Optional order

order: undefined | number

The order this state node appears. Corresponds to the implicit SCXML document order.

Optional parallel

parallel: boolean | undefined

Optional states

states: Record<string, StateNodeConfig>

The mapping of state node keys to their state node configurations (recursive).

Optional strict

strict: boolean | undefined

Optional type

type: StateNode["type"]

The type of this state node:

  • 'atomic' - no child state nodes
  • 'compound' - nested child state nodes (XOR)
  • 'parallel' - orthogonal nested child state nodes (AND)
  • 'history' - history state node
  • 'final' - final state node

Generated using TypeDoc