@jewel998/state-machine
@jewel998/state-machine - v0.0.5
Table of contents
Enumerations
Classes
- StateMachine
- StateMachineDefinition
- StateMachineDefinitionBuilder
- StateMachineError
- InvalidStateError
- InvalidTransitionError
- GuardConditionError
- StateMachineConfigurationError
- ActionExecutionError
- HistoryManager
- Logger
- BaseMiddleware
- MiddlewareManager
- ImmutabilityMiddleware
- ImmerImmutabilityProvider
- ImmutableJSProvider
- NativeImmutabilityProvider
- ObserverManager
- CommandInvoker
- BaseCommand
- CompositeCommand
- Observable
- ValidationResultImpl
- ValidationContext
- StatisticsCollector
- IdGenerator
- PerformanceMonitor
- BasicConfigurationValidator
- ConfigurationValidator
- TransitionConsistencyValidator
- StateReachabilityValidator
Interfaces
- StateMachineConfig
- Transition
- StateAction
- StateMachineOptions
- StateChangeEvent
- TransitionAttemptEvent
- StateChangeObserver
- TransitionResult
- AsyncTransitionResult
- IStateMachineDefinition
- IStateMachineDefinitionBuilder
- ValidationIssue
- ConfigurationValidationResult
- StateMachineStatistics
- MiddlewareContext
- MiddlewareResult
- StateMachineMiddlewareContext
- IMiddleware
- MiddlewareConfig
- IMiddlewareManager
- ImmutabilityProvider
- ImmutabilityOptions
- ICommand
- ICommandInvoker
- IObserver
- ISubject
- IValidationStrategy
- ValidationResult
- PerformanceMetrics
Type Aliases
- StateIdentifier
- EventIdentifier
- NonEmptyArray
- ReadonlyRecord
- ContextConstraint
- GuardFunction
- ActionFunction
- TransactionFunction
- RollbackFunction
- NextFunction
- GuardMiddleware
- ActionMiddleware
- StateMiddleware
- ImmutabilityProviderType
Variables
Functions
- createImmutabilityMiddleware
- createNativeImmutabilityMiddleware
- createImmerMiddleware
- createImmutableJSMiddleware
Type Aliases
StateIdentifier
Ƭ StateIdentifier: string | number | symbol
Base type definitions for the state machine library
Defined in
EventIdentifier
Ƭ EventIdentifier: string | number | symbol
Defined in
NonEmptyArray
Ƭ NonEmptyArray<T>: [T, ...T[]]
Type parameters
| Name |
|---|
T |
Defined in
src/interfaces/BaseTypes.ts:10
ReadonlyRecord
Ƭ ReadonlyRecord<K, V>: Readonly<Record<K, V>>
Type parameters
| Name | Type |
|---|---|
K | extends PropertyKey |
V | V |
Defined in
src/interfaces/BaseTypes.ts:11
ContextConstraint
Ƭ ContextConstraint: Record<string, unknown>
Defined in
src/interfaces/BaseTypes.ts:14
GuardFunction
Ƭ GuardFunction<TContext>: (context: TContext) => boolean | Promise<boolean>
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
Type declaration
▸ (context): boolean | Promise<boolean>
Parameters
| Name | Type |
|---|---|
context | TContext |
Returns
boolean | Promise<boolean>
Defined in
src/interfaces/BaseTypes.ts:17
ActionFunction
Ƭ ActionFunction<TContext>: (context: TContext) => void | Promise<void>
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
Type declaration
▸ (context): void | Promise<void>
Parameters
| Name | Type |
|---|---|
context | TContext |
Returns
void | Promise<void>
Defined in
src/interfaces/BaseTypes.ts:21
TransactionFunction
Ƭ TransactionFunction<TContext>: (context: TContext) => Promise<void>
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
Type declaration
▸ (context): Promise<void>
Parameters
| Name | Type |
|---|---|
context | TContext |
Returns
Promise<void>
Defined in
src/interfaces/BaseTypes.ts:26
RollbackFunction
Ƭ RollbackFunction<TContext>: (context: TContext, error: Error) => Promise<void>
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
Type declaration
▸ (context, error): Promise<void>
Parameters
| Name | Type |
|---|---|
context | TContext |
error | Error |
Returns
Promise<void>
Defined in
src/interfaces/BaseTypes.ts:30
NextFunction
Ƭ NextFunction<TContext>: () => Promise<MiddlewareResult<TContext>>
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
Type declaration
▸ (): Promise<MiddlewareResult<TContext>>
Returns
Promise<MiddlewareResult<TContext>>
Defined in
GuardMiddleware
Ƭ GuardMiddleware<TContext>: (context: StateMachineMiddlewareContext<TContext>, next: () => Promise<boolean>, originalGuard?: GuardFunction<TContext>) => boolean | Promise<boolean>
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
Type declaration
▸ (context, next, originalGuard?): boolean | Promise<boolean>
Parameters
| Name | Type |
|---|---|
context | StateMachineMiddlewareContext<TContext> |
next | () => Promise<boolean> |
originalGuard? | GuardFunction<TContext> |
Returns
boolean | Promise<boolean>
Defined in
ActionMiddleware
Ƭ ActionMiddleware<TContext>: (context: StateMachineMiddlewareContext<TContext>, next: NextFunction<TContext>, originalAction?: ActionFunction<TContext>) => MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
Type declaration
▸ (context, next, originalAction?): MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>
Parameters
| Name | Type |
|---|---|
context | StateMachineMiddlewareContext<TContext> |
next | NextFunction<TContext> |
originalAction? | ActionFunction<TContext> |
Returns
MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>
Defined in
StateMiddleware
Ƭ StateMiddleware<TContext, TState>: (context: StateMachineMiddlewareContext<TContext>, next: NextFunction<TContext>, state: TState, originalAction?: ActionFunction<TContext>) => MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
TState | extends StateIdentifier |
Type declaration
▸ (context, next, state, originalAction?): MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>
Parameters
| Name | Type |
|---|---|
context | StateMachineMiddlewareContext<TContext> |
next | NextFunction<TContext> |
state | TState |
originalAction? | ActionFunction<TContext> |
Returns
MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>
Defined in
ImmutabilityProviderType
Ƭ ImmutabilityProviderType: "native" | "immer" | "immutable-js" | "custom"
Defined in
Variables
logger
• Const logger: Logger
Defined in
Functions
createImmutabilityMiddleware
▸ createImmutabilityMiddleware<TContext, TState>(options): MiddlewareConfig<TContext, TState>
Create an immutability middleware with the specified options
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
TState | extends StateIdentifier |
Parameters
| Name | Type |
|---|---|
options | ImmutabilityOptions<TContext> |
Returns
MiddlewareConfig<TContext, TState>
Defined in
src/middleware/factories.ts:19
createNativeImmutabilityMiddleware
▸ createNativeImmutabilityMiddleware<TContext, TState>(options?): MiddlewareConfig<TContext, TState>
Create a native immutability middleware (using Object.freeze and structuredClone)
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
TState | extends StateIdentifier |
Parameters
| Name | Type |
|---|---|
options | Object |
options.autoFreeze? | boolean |
options.strictMode? | boolean |
Returns
MiddlewareConfig<TContext, TState>
Defined in
src/middleware/factories.ts:30
createImmerMiddleware
▸ createImmerMiddleware<TContext, TState>(options?): MiddlewareConfig<TContext, TState>
Create an Immer.js immutability middleware
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
TState | extends StateIdentifier |
Parameters
| Name | Type |
|---|---|
options | Object |
options.autoFreeze? | boolean |
options.enablePatches? | boolean |
options.strictMode? | boolean |
options.immerInstance? | unknown |
Returns
MiddlewareConfig<TContext, TState>
Defined in
src/middleware/factories.ts:49
createImmutableJSMiddleware
▸ createImmutableJSMiddleware<TContext, TState>(options?): MiddlewareConfig<TContext, TState>
Create an Immutable.js middleware
Type parameters
| Name | Type |
|---|---|
TContext | extends ContextConstraint |
TState | extends StateIdentifier |
Parameters
| Name | Type |
|---|---|
options | Object |
options.autoFreeze? | boolean |
options.strictMode? | boolean |
Returns
MiddlewareConfig<TContext, TState>