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