Skip to main content

StateMachineConfig

StateMachineConfig

The config object used to instantiate a new FSM instance.

Signature
interface StateMachineConfig<T extends string, Data = undefined> {
readonly transitions: Transitions<T>;
onTransitionStart?: OnTransitionStartFn<T, Data>;
onTransitionEnd?: OnTransitionEndFn<T, Data>;
onError?: OnTransitionErrorFn<T>;
}

transitions

property

Defines the available states of the state machine as well as the permitted transitions from one state to another.

onTransitionStart

property

Called before a transition takes place. If the function resolves to false or a string, then the transition will be cancelled. In the case of a string, the string (error message) will be forwarded to the onError handler.

If this function returns a value resolving to true or void (no return value), then the transition will be permitted.

onTransitionEnd

property

Called after a transition has taken place.

onError

Called when a transition is prevented and the onTransitionStart handler has returned an error message.

OnTransitionStartFn

Called before a transition takes place. If the function resolves to false or a string, then the transition will be cancelled. In the case of a string, the string (error message) will be forwarded to the onError handler.

If this function returns a value resolving to true or void (no return value), then the transition will be permitted.

Signature
type OnTransitionStartFn<T extends string, Data> = (
fromState: T,
toState: T,
data: Data,
) => boolean | string | void | Promise<boolean | string | void> | Observable<boolean | string | void>

OnTransitionErrorFn

Called when a transition is prevented and the onTransitionStart handler has returned an error message.

Signature
type OnTransitionErrorFn<T extends string> = (
fromState: T,
toState: T,
message?: string,
) => void | Promise<void> | Observable<void>

OnTransitionEndFn

Called after a transition has taken place.

Signature
type OnTransitionEndFn<T extends string, Data> = (
fromState: T,
toState: T,
data: Data,
) => void | Promise<void> | Observable<void>