Skip to content

StoreMachine

Defined in: store-machine.ts:8

Lifecycle interface defines the methods for managing state transitions and effects. Implemented by StateMachine and StoreMachine to handle state changes. It provides a structured way to handle state changes, including guards, effects, and notifications.

Lifecycle steps:

  1. transition(ev) - Triggers the transition lifecycle, handling all steps for processing a change event.
  2. guard(ev) - Checks if the transition is allowed.
  3. handle(ev) - Processes the event, may abort if returns undefined.
  4. before(ev) - Prepares for state change, may abort if returns undefined.
  5. update(ev) - Applies the state update.
  6. effect(ev) - Runs side effects, calls leave/enter hooks.
  7. leave(ev) - Called when leaving the previous state.
  8. enter(ev) - Called when entering the new state.
  9. notify(ev) - Notifies subscribers of the change.
  10. after(ev) - Final hook after transition completes.
Type ParameterDefault type
T-
TR extends StoreTransitionRecord<T>StoreTransitionRecord<T>

transition(change: StoreChange): void

Defined in: event-lifecycle.ts:28

Triggers the transition lifecycle, handling all steps for processing a change event.

ParameterType
changeStoreChange

void

EventLifecycle.transition


guard(ev: StoreChange): boolean

Defined in: event-lifecycle.ts:32

Checks if a transition event is allowed to proceed. Returns true to continue, false to abort.

ParameterType
evStoreChange

boolean

EventLifecycle.guard


handle(ev: StoreChange): undefined | StoreChange<T>

Defined in: event-lifecycle.ts:36

Processes the event. May abort the transition if returns undefined.

ParameterType
evStoreChange

undefined | StoreChange<T>

EventLifecycle.handle


before(ev: StoreChange): undefined | StoreChange<T>

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.)

ParameterType
evStoreChange

undefined | StoreChange<T>

EventLifecycle.before


update(ev: StoreChange): void

Defined in: event-lifecycle.ts:45

Applies the state update.

ParameterType
evStoreChange

void

EventLifecycle.update


effect(ev: StoreChange): void

Defined in: event-lifecycle.ts:49

Runs side effects for the transition. By default, calls leave and enter hooks.

ParameterType
evStoreChange

void

EventLifecycle.effect


leave(ev: StoreChange): void

Defined in: event-lifecycle.ts:53

Called when leaving the previous state.

ParameterType
evStoreChange

void

EventLifecycle.leave


enter(ev: StoreChange): void

Defined in: event-lifecycle.ts:57

Called when entering the new state.

ParameterType
evStoreChange

void

EventLifecycle.enter


notify(ev: StoreChange): void

Defined in: event-lifecycle.ts:61

Notifies subscribers of the change.

ParameterType
evStoreChange

void

EventLifecycle.notify


after(ev: StoreChange): void

Defined in: event-lifecycle.ts:65

Final hook after transition completes. (Represents afterTransition, not state entry/exit.)

ParameterType
evStoreChange

void

EventLifecycle.after


getState(): T

Defined in: store-machine.ts:12

T


getChange(): StoreChange<T>

Defined in: store-machine.ts:13

StoreChange<T>


dispatch<E>(type: E, …params: ExtractStoreParams<TR, E>): void

Defined in: store-machine.ts:14

Type Parameter
E extends string
ParameterType
typeE
paramsExtractStoreParams<TR, E>

void


resolveExit(ev: StoreChange<T>): undefined | StoreChange<T>

Defined in: store-machine.ts:19

ParameterType
evStoreChange<T>

undefined | StoreChange<T>

PropertyType
actionsTR