xstate 4.25.0 → 4.27.0-pr2674-2021926101023
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +79 -0
- package/dist/xstate.cjs.d.ts +11 -0
- package/dist/xstate.cjs.js +16 -0
- package/dist/xstate.interpreter.js +1 -1
- package/dist/xstate.js +1 -1
- package/dist/xstate.web.js +2 -2
- package/es/Actor.d.ts +1 -2
- package/es/Machine.d.ts +5 -4
- package/es/State.d.ts +11 -9
- package/es/StateNode.d.ts +21 -15
- package/es/StateNode.js +15 -13
- package/es/actions.d.ts +4 -5
- package/es/behaviors.d.ts +1 -1
- package/es/devTools.d.ts +1 -1
- package/es/each.d.ts +1 -1
- package/es/index.d.ts +1 -0
- package/es/interpreter.d.ts +35 -25
- package/es/interpreter.js +2 -1
- package/es/model.d.ts +2 -2
- package/es/model.types.d.ts +8 -9
- package/es/scxml.d.ts +2 -2
- package/es/stateUtils.d.ts +7 -5
- package/es/stateUtils.js +7 -2
- package/es/typegenTypes.d.ts +92 -0
- package/es/types.d.ts +111 -50
- package/es/utils.d.ts +1 -1
- package/es/utils.js +1 -1
- package/lib/Actor.d.ts +1 -2
- package/lib/Machine.d.ts +5 -4
- package/lib/State.d.ts +11 -9
- package/lib/StateNode.d.ts +21 -15
- package/lib/StateNode.js +14 -12
- package/lib/actions.d.ts +4 -5
- package/lib/behaviors.d.ts +1 -1
- package/lib/devTools.d.ts +1 -1
- package/lib/each.d.ts +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/interpreter.d.ts +35 -25
- package/lib/interpreter.js +2 -1
- package/lib/model.d.ts +2 -2
- package/lib/model.types.d.ts +8 -9
- package/lib/scxml.d.ts +2 -2
- package/lib/stateUtils.d.ts +7 -5
- package/lib/stateUtils.js +6 -0
- package/lib/typegenTypes.d.ts +92 -0
- package/lib/typegenTypes.js +2 -0
- package/lib/types.d.ts +111 -50
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +1 -1
- package/package.json +1 -1
package/lib/types.d.ts
CHANGED
|
@@ -1,9 +1,25 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { State } from './State';
|
|
3
|
-
import { Interpreter, Clock } from './interpreter';
|
|
1
|
+
import { Clock, Interpreter } from './interpreter';
|
|
4
2
|
import { Model } from './model.types';
|
|
5
|
-
|
|
3
|
+
import { State } from './State';
|
|
4
|
+
import { StateNode } from './StateNode';
|
|
5
|
+
import { MarkAllImplementationsAsProvided, TypegenDisabled, ResolveTypegenMeta, TypegenConstraint } from './typegenTypes';
|
|
6
|
+
export declare type AnyFunction = (...args: any[]) => any;
|
|
6
7
|
declare type ReturnTypeOrValue<T> = T extends AnyFunction ? ReturnType<T> : T;
|
|
8
|
+
export declare type IsNever<T> = [T] extends [never] ? true : false;
|
|
9
|
+
export declare type Cast<T extends any, TCastType extends any> = T extends TCastType ? T : TCastType;
|
|
10
|
+
export declare type Compute<A extends any> = {
|
|
11
|
+
[K in keyof A]: A[K];
|
|
12
|
+
} & unknown;
|
|
13
|
+
export declare type Prop<T, K> = K extends keyof T ? T[K] : never;
|
|
14
|
+
export declare type Values<T> = T[keyof T];
|
|
15
|
+
export declare type Merge<M, N> = Omit<M, keyof N> & N;
|
|
16
|
+
export declare type IndexByType<T extends {
|
|
17
|
+
type: string;
|
|
18
|
+
}> = {
|
|
19
|
+
[K in T['type']]: Extract<T, {
|
|
20
|
+
type: K;
|
|
21
|
+
}>;
|
|
22
|
+
};
|
|
7
23
|
export declare type EventType = string;
|
|
8
24
|
export declare type ActionType = string;
|
|
9
25
|
export declare type MetaObject = Record<string, any>;
|
|
@@ -44,7 +60,7 @@ export declare type EventData = Record<string, any> & {
|
|
|
44
60
|
* The specified string event types or the specified event objects.
|
|
45
61
|
*/
|
|
46
62
|
export declare type Event<TEvent extends EventObject> = TEvent['type'] | TEvent;
|
|
47
|
-
export interface ActionMeta<TContext, TEvent extends EventObject, TAction extends
|
|
63
|
+
export interface ActionMeta<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> extends StateMeta<TContext, TEvent> {
|
|
48
64
|
action: TAction;
|
|
49
65
|
_event: SCXML.Event<TEvent>;
|
|
50
66
|
}
|
|
@@ -53,8 +69,10 @@ export interface AssignMeta<TContext, TEvent extends EventObject> {
|
|
|
53
69
|
action: AssignAction<TContext, TEvent>;
|
|
54
70
|
_event: SCXML.Event<TEvent>;
|
|
55
71
|
}
|
|
56
|
-
export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends
|
|
57
|
-
|
|
72
|
+
export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
|
|
73
|
+
bivarianceHack(context: TContext, event: TEvent, meta: ActionMeta<TContext, TEvent, TAction>): void;
|
|
74
|
+
}['bivarianceHack'];
|
|
75
|
+
export interface ChooseCondition<TContext, TEvent extends EventObject> {
|
|
58
76
|
cond?: Condition<TContext, TEvent>;
|
|
59
77
|
actions: Actions<TContext, TEvent>;
|
|
60
78
|
}
|
|
@@ -116,6 +134,7 @@ export interface TransitionConfig<TContext, TEvent extends EventObject> {
|
|
|
116
134
|
internal?: boolean;
|
|
117
135
|
target?: TransitionTarget<TContext, TEvent>;
|
|
118
136
|
meta?: Record<string, any>;
|
|
137
|
+
description?: string;
|
|
119
138
|
}
|
|
120
139
|
export interface TargetTransitionConfig<TContext, TEvent extends EventObject> extends TransitionConfig<TContext, TEvent> {
|
|
121
140
|
target: TransitionTarget<TContext, TEvent>;
|
|
@@ -157,6 +176,7 @@ export declare type InvokeCallback<TEvent extends EventObject = AnyEventObject,
|
|
|
157
176
|
export interface InvokeMeta {
|
|
158
177
|
data: any;
|
|
159
178
|
src: InvokeSourceDefinition;
|
|
179
|
+
meta?: MetaObject;
|
|
160
180
|
}
|
|
161
181
|
/**
|
|
162
182
|
* Returns either a Promises or a callback handler (for streams of events) given the
|
|
@@ -196,6 +216,7 @@ export interface InvokeDefinition<TContext, TEvent extends EventObject> extends
|
|
|
196
216
|
* Data should be mapped to match the child machine's context shape.
|
|
197
217
|
*/
|
|
198
218
|
data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
|
|
219
|
+
meta?: MetaObject;
|
|
199
220
|
}
|
|
200
221
|
export interface Delay {
|
|
201
222
|
id: string;
|
|
@@ -278,6 +299,10 @@ export interface InvokeConfig<TContext, TEvent extends EventObject> {
|
|
|
278
299
|
* The transition to take upon the invoked child machine sending an error event.
|
|
279
300
|
*/
|
|
280
301
|
onError?: string | SingleOrArray<TransitionConfig<TContext, DoneInvokeEvent<any>>>;
|
|
302
|
+
/**
|
|
303
|
+
* Meta data related to this invocation
|
|
304
|
+
*/
|
|
305
|
+
meta?: MetaObject;
|
|
281
306
|
}
|
|
282
307
|
export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> {
|
|
283
308
|
/**
|
|
@@ -406,6 +431,10 @@ export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEv
|
|
|
406
431
|
* @default false
|
|
407
432
|
*/
|
|
408
433
|
preserveActionOrder?: boolean;
|
|
434
|
+
/**
|
|
435
|
+
* A text description of the state node
|
|
436
|
+
*/
|
|
437
|
+
description?: string;
|
|
409
438
|
}
|
|
410
439
|
export interface StateNodeDefinition<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> {
|
|
411
440
|
id: string;
|
|
@@ -428,6 +457,8 @@ export interface StateNodeDefinition<TContext, TStateSchema extends StateSchema,
|
|
|
428
457
|
order: number;
|
|
429
458
|
data?: FinalStateNodeConfig<TContext, TEvent>['data'];
|
|
430
459
|
invoke: Array<InvokeDefinition<TContext, TEvent>>;
|
|
460
|
+
description?: string;
|
|
461
|
+
tags: string[];
|
|
431
462
|
}
|
|
432
463
|
export declare type AnyStateNodeDefinition = StateNodeDefinition<any, any, any>;
|
|
433
464
|
export interface AtomicStateNodeConfig<TContext, TEvent extends EventObject> extends StateNodeConfig<TContext, StateSchema, TEvent> {
|
|
@@ -449,7 +480,7 @@ export interface FinalStateNodeConfig<TContext, TEvent extends EventObject> exte
|
|
|
449
480
|
data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
|
|
450
481
|
}
|
|
451
482
|
export declare type SimpleOrStateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TStateSchema, TEvent>;
|
|
452
|
-
export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAction extends
|
|
483
|
+
export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
|
|
453
484
|
[K in TAction['type']]?: ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent, TAction extends {
|
|
454
485
|
type: K;
|
|
455
486
|
} ? TAction : never>;
|
|
@@ -457,25 +488,44 @@ export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAct
|
|
|
457
488
|
export declare type DelayFunctionMap<TContext, TEvent extends EventObject> = Record<string, DelayConfig<TContext, TEvent>>;
|
|
458
489
|
export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | StateMachine<any, any, any> | InvokeCreator<TContext, TEvent>;
|
|
459
490
|
export declare type DelayConfig<TContext, TEvent extends EventObject> = number | DelayExpr<TContext, TEvent>;
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
491
|
+
declare type MachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
|
|
492
|
+
[K in keyof TEventsCausingActions]?: ActionObject<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>> | ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedActions, K>, BaseActionObject>>;
|
|
493
|
+
};
|
|
494
|
+
declare type MachineOptionsDelays<TContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<TResolvedTypesMeta, 'eventsCausingDelays'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
|
|
495
|
+
[K in keyof TEventsCausingDelays]?: DelayConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingDelays[K]>, EventObject>>;
|
|
496
|
+
};
|
|
497
|
+
declare type MachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<TResolvedTypesMeta, 'eventsCausingGuards'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
|
|
498
|
+
[K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
|
|
499
|
+
};
|
|
500
|
+
declare type MachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
|
|
501
|
+
[K in keyof TEventsCausingServices]?: StateMachine<any, any, any> | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>>;
|
|
502
|
+
};
|
|
503
|
+
declare type MakeKeysRequired<T extends string> = {
|
|
504
|
+
[K in T]: unknown;
|
|
505
|
+
};
|
|
506
|
+
declare type MaybeMakeMissingImplementationsRequired<TImplementationType, TMissingImplementationsForType, TRequireMissingImplementations> = TRequireMissingImplementations extends true ? IsNever<TMissingImplementationsForType> extends true ? {} : {
|
|
507
|
+
[K in Cast<TImplementationType, string>]: MakeKeysRequired<Cast<TMissingImplementationsForType, string>>;
|
|
508
|
+
} : {};
|
|
509
|
+
declare type GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'actions', Prop<TMissingImplementations, 'actions'>, TRequireMissingImplementations> & {
|
|
510
|
+
actions?: MachineOptionsActions<TContext, TResolvedTypesMeta>;
|
|
511
|
+
};
|
|
512
|
+
declare type GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'delays', Prop<TMissingImplementations, 'delays'>, TRequireMissingImplementations> & {
|
|
513
|
+
delays?: MachineOptionsDelays<TContext, TResolvedTypesMeta>;
|
|
514
|
+
};
|
|
515
|
+
declare type GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'guards', Prop<TMissingImplementations, 'guards'>, TRequireMissingImplementations> & {
|
|
516
|
+
guards?: MachineOptionsGuards<TContext, TResolvedTypesMeta>;
|
|
517
|
+
};
|
|
518
|
+
declare type GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'services', Prop<TMissingImplementations, 'services'>, TRequireMissingImplementations> & {
|
|
519
|
+
services?: MachineOptionsServices<TContext, TResolvedTypesMeta>;
|
|
520
|
+
};
|
|
521
|
+
export declare type InternalMachineOptions<TContext, TEvent extends EventObject, TResolvedTypesMeta, TRequireMissingImplementations extends boolean = false, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & {
|
|
463
522
|
/**
|
|
464
523
|
* @deprecated Use `services` instead.
|
|
465
524
|
*/
|
|
466
|
-
activities
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
* @private
|
|
471
|
-
*/
|
|
472
|
-
_parent?: StateNode<TContext, any, TEvent, any>;
|
|
473
|
-
/**
|
|
474
|
-
* @private
|
|
475
|
-
*/
|
|
476
|
-
_key?: string;
|
|
477
|
-
}
|
|
478
|
-
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = ActionObject<TContext, TEvent>> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
|
|
525
|
+
activities?: Record<string, ActivityConfig<TContext, TEvent>>;
|
|
526
|
+
};
|
|
527
|
+
export declare type MachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction>>;
|
|
528
|
+
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TTypesMeta = TypegenDisabled> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
|
|
479
529
|
/**
|
|
480
530
|
* The initial context (extended state)
|
|
481
531
|
*/
|
|
@@ -485,6 +535,7 @@ export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEven
|
|
|
485
535
|
*/
|
|
486
536
|
version?: string;
|
|
487
537
|
schema?: MachineSchema<TContext, TEvent>;
|
|
538
|
+
tsTypes?: TTypesMeta | true;
|
|
488
539
|
}
|
|
489
540
|
export interface MachineSchema<TContext, TEvent extends EventObject> {
|
|
490
541
|
context?: TContext;
|
|
@@ -519,13 +570,19 @@ export interface HistoryStateNode<TContext> extends StateNode<TContext> {
|
|
|
519
570
|
export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TTypestate extends Typestate<TContext> = {
|
|
520
571
|
value: any;
|
|
521
572
|
context: TContext;
|
|
522
|
-
},
|
|
573
|
+
}, TAction extends BaseActionObject = BaseActionObject, TResolvedTypesMeta = TypegenDisabled> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> {
|
|
523
574
|
id: string;
|
|
524
|
-
states: StateNode<TContext, TStateSchema, TEvent>['states'];
|
|
525
|
-
withConfig(options:
|
|
526
|
-
withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
|
|
527
|
-
|
|
528
|
-
|
|
575
|
+
states: StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta>['states'];
|
|
576
|
+
withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, MarkAllImplementationsAsProvided<TResolvedTypesMeta>>;
|
|
577
|
+
withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, any, TResolvedTypesMeta>;
|
|
578
|
+
__TContext: TContext;
|
|
579
|
+
__TStateSchema: TStateSchema;
|
|
580
|
+
__TEvent: TEvent;
|
|
581
|
+
__TTypestate: TTypestate;
|
|
582
|
+
__TAction: TAction;
|
|
583
|
+
__TResolvedTypesMeta: TResolvedTypesMeta;
|
|
584
|
+
}
|
|
585
|
+
export declare type StateFrom<T extends StateMachine<any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any>)> = T extends StateMachine<any, any, any, any, any, any> ? ReturnType<T['transition']> : T extends (...args: any[]) => StateMachine<any, any, any, any, any, any> ? ReturnType<ReturnType<T>['transition']> : never;
|
|
529
586
|
export interface ActionMap<TContext, TEvent extends EventObject> {
|
|
530
587
|
onEntry: Array<Action<TContext, TEvent>>;
|
|
531
588
|
actions: Array<Action<TContext, TEvent>>;
|
|
@@ -544,13 +601,13 @@ export interface ActivityMap {
|
|
|
544
601
|
}
|
|
545
602
|
export interface StateTransition<TContext, TEvent extends EventObject> {
|
|
546
603
|
transitions: Array<TransitionDefinition<TContext, TEvent>>;
|
|
547
|
-
configuration: Array<StateNode<TContext, any, TEvent, any>>;
|
|
548
|
-
entrySet: Array<StateNode<TContext, any, TEvent, any>>;
|
|
549
|
-
exitSet: Array<StateNode<TContext, any, TEvent, any>>;
|
|
604
|
+
configuration: Array<StateNode<TContext, any, TEvent, any, any>>;
|
|
605
|
+
entrySet: Array<StateNode<TContext, any, TEvent, any, any>>;
|
|
606
|
+
exitSet: Array<StateNode<TContext, any, TEvent, any, any>>;
|
|
550
607
|
/**
|
|
551
608
|
* The source state that preceded the transition.
|
|
552
609
|
*/
|
|
553
|
-
source: State<TContext, any, any, any> | undefined;
|
|
610
|
+
source: State<TContext, any, any, any, any> | undefined;
|
|
554
611
|
actions: Array<ActionObject<TContext, TEvent>>;
|
|
555
612
|
}
|
|
556
613
|
export interface TransitionData<TContext, TEvent extends EventObject> {
|
|
@@ -693,7 +750,7 @@ export interface PureAction<TContext, TEvent extends EventObject> extends Action
|
|
|
693
750
|
}
|
|
694
751
|
export interface ChooseAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
|
695
752
|
type: ActionTypes.Choose;
|
|
696
|
-
conds: Array<
|
|
753
|
+
conds: Array<ChooseCondition<TContext, TEvent>>;
|
|
697
754
|
}
|
|
698
755
|
export interface TransitionDefinition<TContext, TEvent extends EventObject> extends TransitionConfig<TContext, TEvent> {
|
|
699
756
|
target: Array<StateNode<TContext, any, TEvent>> | undefined;
|
|
@@ -771,7 +828,7 @@ export interface SCXMLEventMeta<TEvent extends EventObject> {
|
|
|
771
828
|
_event: SCXML.Event<TEvent>;
|
|
772
829
|
}
|
|
773
830
|
export interface StateMeta<TContext, TEvent extends EventObject> {
|
|
774
|
-
state: State<TContext, TEvent, any, any>;
|
|
831
|
+
state: State<TContext, TEvent, any, any, any>;
|
|
775
832
|
_event: SCXML.Event<TEvent>;
|
|
776
833
|
}
|
|
777
834
|
export interface Typestate<TContext> {
|
|
@@ -790,7 +847,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
790
847
|
_event: SCXML.Event<TEvent>;
|
|
791
848
|
_sessionid: string | null;
|
|
792
849
|
historyValue?: HistoryValue | undefined;
|
|
793
|
-
history?: State<TContext, TEvent>;
|
|
850
|
+
history?: State<TContext, TEvent, any, any, any>;
|
|
794
851
|
actions?: Array<ActionObject<TContext, TEvent>>;
|
|
795
852
|
/**
|
|
796
853
|
* @deprecated
|
|
@@ -803,7 +860,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
803
860
|
children: Record<string, ActorRef<any>>;
|
|
804
861
|
done?: boolean;
|
|
805
862
|
tags?: Set<string>;
|
|
806
|
-
machine?: StateMachine<TContext, any, TEvent, any>;
|
|
863
|
+
machine?: StateMachine<TContext, any, TEvent, any, any, any>;
|
|
807
864
|
}
|
|
808
865
|
export interface StateSchema<TC = any> {
|
|
809
866
|
meta?: any;
|
|
@@ -816,9 +873,9 @@ export interface InterpreterOptions {
|
|
|
816
873
|
/**
|
|
817
874
|
* Whether state actions should be executed immediately upon transition. Defaults to `true`.
|
|
818
875
|
*/
|
|
819
|
-
execute
|
|
820
|
-
clock
|
|
821
|
-
logger
|
|
876
|
+
execute?: boolean;
|
|
877
|
+
clock?: Clock;
|
|
878
|
+
logger?: (...args: any[]) => void;
|
|
822
879
|
parent?: AnyInterpreter;
|
|
823
880
|
/**
|
|
824
881
|
* If `true`, defers processing of sent events until the service
|
|
@@ -827,7 +884,7 @@ export interface InterpreterOptions {
|
|
|
827
884
|
*
|
|
828
885
|
* Default: `true`
|
|
829
886
|
*/
|
|
830
|
-
deferEvents
|
|
887
|
+
deferEvents?: boolean;
|
|
831
888
|
/**
|
|
832
889
|
* The custom `id` for referencing this service.
|
|
833
890
|
*/
|
|
@@ -837,8 +894,7 @@ export interface InterpreterOptions {
|
|
|
837
894
|
*
|
|
838
895
|
* Default: `false`
|
|
839
896
|
*/
|
|
840
|
-
devTools
|
|
841
|
-
[option: string]: any;
|
|
897
|
+
devTools?: boolean | object;
|
|
842
898
|
}
|
|
843
899
|
export declare namespace SCXML {
|
|
844
900
|
interface Event<TEvent extends EventObject> {
|
|
@@ -932,15 +988,17 @@ export interface ActorRef<TEvent extends EventObject, TEmitted = any> extends Su
|
|
|
932
988
|
* @deprecated Use `ActorRef` instead.
|
|
933
989
|
*/
|
|
934
990
|
export declare type SpawnedActorRef<TEvent extends EventObject, TEmitted = any> = ActorRef<TEvent, TEmitted>;
|
|
935
|
-
export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext
|
|
991
|
+
export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext>, TResolvedTypesMeta = TypegenDisabled> = ActorRef<TEvent, State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>> & {
|
|
936
992
|
/**
|
|
937
993
|
* @deprecated Use `.getSnapshot()` instead.
|
|
938
994
|
*/
|
|
939
|
-
state: State<TContext, TEvent, any, TTypestate>;
|
|
995
|
+
state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>;
|
|
940
996
|
};
|
|
941
|
-
export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends Promise<infer U> ? ActorRef<never, U> : T extends Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : T extends (...args: any[]) => Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : never;
|
|
942
|
-
export declare type AnyInterpreter = Interpreter<any, any, any, any>;
|
|
943
|
-
export declare type InterpreterFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate> : never;
|
|
997
|
+
export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, TResolvedTypesMeta> : T extends Promise<infer U> ? ActorRef<never, U> : T extends Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : T extends (...args: any[]) => Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : never;
|
|
998
|
+
export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
|
|
999
|
+
export declare type InterpreterFrom<T extends StateMachine<any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any>)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : never;
|
|
1000
|
+
export declare type MachineOptionsFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
1001
|
+
export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
944
1002
|
export interface ActorContext<TEvent extends EventObject, TEmitted> {
|
|
945
1003
|
parent?: ActorRef<any, any>;
|
|
946
1004
|
self: ActorRef<TEvent, TEmitted>;
|
|
@@ -953,7 +1011,10 @@ export interface Behavior<TEvent extends EventObject, TEmitted = any> {
|
|
|
953
1011
|
start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
|
|
954
1012
|
}
|
|
955
1013
|
export declare type EmittedFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TEmitted> ? TEmitted : R extends Behavior<infer _, infer TEmitted> ? TEmitted : R extends ActorContext<infer _, infer TEmitted> ? TEmitted : never : never;
|
|
956
|
-
|
|
1014
|
+
declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends Model<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ____> ? TEvent : never : never;
|
|
1015
|
+
export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : Extract<TEvent, {
|
|
1016
|
+
type: K;
|
|
1017
|
+
}>;
|
|
957
1018
|
export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___> ? TContext : never : never;
|
|
958
1019
|
export {};
|
|
959
1020
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/utils.d.ts
CHANGED
|
@@ -63,7 +63,7 @@ export declare function toTransitionConfigArray<TContext, TEvent extends EventOb
|
|
|
63
63
|
}>;
|
|
64
64
|
export declare function normalizeTarget<TContext, TEvent extends EventObject>(target: SingleOrArray<string | StateNode<TContext, any, TEvent>> | undefined): Array<string | StateNode<TContext, any, TEvent>> | undefined;
|
|
65
65
|
export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
|
|
66
|
-
export declare function evaluateGuard<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any>, guard: Guard<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
|
|
66
|
+
export declare function evaluateGuard<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any, any>, guard: Guard<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
|
|
67
67
|
export declare function toInvokeSource(src: string | InvokeSourceDefinition): InvokeSourceDefinition;
|
|
68
68
|
export declare function toObserver<T>(nextHandler: Observer<T> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
|
|
69
69
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.js
CHANGED
|
@@ -552,7 +552,7 @@ function evaluateGuard(machine, guard, context, _event, state) {
|
|
|
552
552
|
return ((guards === null || guards === void 0 ? void 0 : guards[guard.name]) || guard.predicate)(context, _event.data, guardMeta);
|
|
553
553
|
}
|
|
554
554
|
|
|
555
|
-
var condFn = guards[guard.type];
|
|
555
|
+
var condFn = guards === null || guards === void 0 ? void 0 : guards[guard.type];
|
|
556
556
|
|
|
557
557
|
if (!condFn) {
|
|
558
558
|
throw new Error("Guard '" + guard.type + "' is not implemented on machine '" + machine.id + "'.");
|