Skip to main content

@jewel998/state-machine

@jewel998/state-machine - v0.0.5

Table of contents​

Enumerations​

Classes​

Interfaces​

Type Aliases​

Variables​

Functions​

Type Aliases​

StateIdentifier​

Ƭ StateIdentifier: string | number | symbol

Base type definitions for the state machine library

Defined in​

src/interfaces/BaseTypes.ts:6


EventIdentifier​

Ƭ EventIdentifier: string | number | symbol

Defined in​

src/interfaces/BaseTypes.ts:7


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​

NameType
Kextends PropertyKey
VV

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​

NameType
TContextextends ContextConstraint

Type declaration​

▸ (context): boolean | Promise<boolean>

Parameters​
NameType
contextTContext
Returns​

boolean | Promise<boolean>

Defined in​

src/interfaces/BaseTypes.ts:17


ActionFunction​

Ƭ ActionFunction<TContext>: (context: TContext) => void | Promise<void>

Type parameters​

NameType
TContextextends ContextConstraint

Type declaration​

▸ (context): void | Promise<void>

Parameters​
NameType
contextTContext
Returns​

void | Promise<void>

Defined in​

src/interfaces/BaseTypes.ts:21


TransactionFunction​

Ƭ TransactionFunction<TContext>: (context: TContext) => Promise<void>

Type parameters​

NameType
TContextextends ContextConstraint

Type declaration​

▸ (context): Promise<void>

Parameters​
NameType
contextTContext
Returns​

Promise<void>

Defined in​

src/interfaces/BaseTypes.ts:26


RollbackFunction​

Ƭ RollbackFunction<TContext>: (context: TContext, error: Error) => Promise<void>

Type parameters​

NameType
TContextextends ContextConstraint

Type declaration​

▸ (context, error): Promise<void>

Parameters​
NameType
contextTContext
errorError
Returns​

Promise<void>

Defined in​

src/interfaces/BaseTypes.ts:30


NextFunction​

Ƭ NextFunction<TContext>: () => Promise<MiddlewareResult<TContext>>

Type parameters​

NameType
TContextextends ContextConstraint

Type declaration​

▸ (): Promise<MiddlewareResult<TContext>>

Returns​

Promise<MiddlewareResult<TContext>>

Defined in​

src/middleware/types.ts:35


GuardMiddleware​

Ƭ GuardMiddleware<TContext>: (context: StateMachineMiddlewareContext<TContext>, next: () => Promise<boolean>, originalGuard?: GuardFunction<TContext>) => boolean | Promise<boolean>

Type parameters​

NameType
TContextextends ContextConstraint

Type declaration​

▸ (context, next, originalGuard?): boolean | Promise<boolean>

Parameters​
NameType
contextStateMachineMiddlewareContext<TContext>
next() => Promise<boolean>
originalGuard?GuardFunction<TContext>
Returns​

boolean | Promise<boolean>

Defined in​

src/middleware/types.ts:40


ActionMiddleware​

Ƭ ActionMiddleware<TContext>: (context: StateMachineMiddlewareContext<TContext>, next: NextFunction<TContext>, originalAction?: ActionFunction<TContext>) => MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>

Type parameters​

NameType
TContextextends ContextConstraint

Type declaration​

▸ (context, next, originalAction?): MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>

Parameters​
NameType
contextStateMachineMiddlewareContext<TContext>
nextNextFunction<TContext>
originalAction?ActionFunction<TContext>
Returns​

MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>

Defined in​

src/middleware/types.ts:46


StateMiddleware​

Ƭ StateMiddleware<TContext, TState>: (context: StateMachineMiddlewareContext<TContext>, next: NextFunction<TContext>, state: TState, originalAction?: ActionFunction<TContext>) => MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>

Type parameters​

NameType
TContextextends ContextConstraint
TStateextends StateIdentifier

Type declaration​

▸ (context, next, state, originalAction?): MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>

Parameters​
NameType
contextStateMachineMiddlewareContext<TContext>
nextNextFunction<TContext>
stateTState
originalAction?ActionFunction<TContext>
Returns​

MiddlewareResult<TContext> | Promise<MiddlewareResult<TContext>>

Defined in​

src/middleware/types.ts:52


ImmutabilityProviderType​

Ƭ ImmutabilityProviderType: "native" | "immer" | "immutable-js" | "custom"

Defined in​

src/middleware/types.ts:223

Variables​

logger​

• Const logger: Logger

Defined in​

src/logger.ts:136

Functions​

createImmutabilityMiddleware​

▸ createImmutabilityMiddleware<TContext, TState>(options): MiddlewareConfig<TContext, TState>

Create an immutability middleware with the specified options

Type parameters​

NameType
TContextextends ContextConstraint
TStateextends StateIdentifier

Parameters​

NameType
optionsImmutabilityOptions<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​

NameType
TContextextends ContextConstraint
TStateextends StateIdentifier

Parameters​

NameType
optionsObject
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​

NameType
TContextextends ContextConstraint
TStateextends StateIdentifier

Parameters​

NameType
optionsObject
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​

NameType
TContextextends ContextConstraint
TStateextends StateIdentifier

Parameters​

NameType
optionsObject
options.autoFreeze?boolean
options.strictMode?boolean

Returns​

MiddlewareConfig<TContext, TState>

Defined in​

src/middleware/factories.ts:89