xstate 4.27.0-pr2674-2021926101023 → 4.27.0
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 +24 -12
- 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 +2 -1
- package/es/Machine.d.ts +4 -5
- package/es/State.d.ts +14 -13
- package/es/State.js +10 -3
- package/es/StateNode.d.ts +16 -20
- package/es/StateNode.js +51 -57
- package/es/_virtual/_tslib.js +8 -4
- package/es/actions.d.ts +20 -3
- package/es/actions.js +7 -7
- package/es/behaviors.d.ts +1 -1
- package/es/devTools.d.ts +2 -3
- package/es/devTools.js +4 -0
- package/es/each.d.ts +1 -1
- package/es/index.d.ts +0 -1
- package/es/interpreter.d.ts +25 -35
- package/es/interpreter.js +21 -16
- package/es/model.d.ts +2 -2
- package/es/model.types.d.ts +9 -8
- package/es/registry.js +1 -1
- package/es/scxml.d.ts +2 -2
- package/es/stateUtils.d.ts +5 -6
- package/es/stateUtils.js +1 -1
- package/es/types.d.ts +52 -104
- package/es/utils.d.ts +1 -1
- package/es/utils.js +10 -10
- package/lib/Actor.d.ts +2 -1
- package/lib/Machine.d.ts +4 -5
- package/lib/SimulatedClock.js +9 -5
- package/lib/State.d.ts +14 -13
- package/lib/State.js +10 -3
- package/lib/StateNode.d.ts +16 -20
- package/lib/StateNode.js +49 -55
- package/lib/_virtual/_tslib.js +8 -4
- package/lib/actions.d.ts +20 -3
- package/lib/actions.js +7 -7
- package/lib/behaviors.d.ts +1 -1
- package/lib/devTools.d.ts +2 -3
- package/lib/devTools.js +4 -0
- package/lib/each.d.ts +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/interpreter.d.ts +25 -35
- package/lib/interpreter.js +21 -16
- package/lib/json.js +7 -7
- package/lib/model.d.ts +2 -2
- package/lib/model.js +14 -10
- package/lib/model.types.d.ts +9 -8
- package/lib/patterns.js +2 -2
- package/lib/registry.js +1 -1
- package/lib/scxml.d.ts +2 -2
- package/lib/scxml.js +29 -25
- package/lib/stateUtils.d.ts +5 -6
- package/lib/stateUtils.js +1 -1
- package/lib/types.d.ts +52 -104
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +10 -10
- package/package.json +4 -8
- package/dist/xstate.cjs.d.ts +0 -11
- package/dist/xstate.cjs.js +0 -16
- package/es/typegenTypes.d.ts +0 -92
- package/lib/typegenTypes.d.ts +0 -92
- package/lib/typegenTypes.js +0 -2
package/es/types.d.ts
CHANGED
|
@@ -1,25 +1,10 @@
|
|
|
1
|
-
import { Clock, Interpreter } from './interpreter';
|
|
2
|
-
import { Model } from './model.types';
|
|
3
|
-
import { State } from './State';
|
|
4
1
|
import { StateNode } from './StateNode';
|
|
5
|
-
import {
|
|
6
|
-
|
|
2
|
+
import { State } from './State';
|
|
3
|
+
import { Interpreter, Clock } from './interpreter';
|
|
4
|
+
import { IsNever, Model, Prop } from './model.types';
|
|
5
|
+
declare type AnyFunction = (...args: any[]) => any;
|
|
7
6
|
declare type ReturnTypeOrValue<T> = T extends AnyFunction ? ReturnType<T> : T;
|
|
8
|
-
export declare type
|
|
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
|
+
export declare type Cast<A, B> = A extends B ? A : B;
|
|
23
8
|
export declare type EventType = string;
|
|
24
9
|
export declare type ActionType = string;
|
|
25
10
|
export declare type MetaObject = Record<string, any>;
|
|
@@ -50,7 +35,7 @@ export interface ActionObject<TContext, TEvent extends EventObject> extends Base
|
|
|
50
35
|
/**
|
|
51
36
|
* The implementation for executing the action.
|
|
52
37
|
*/
|
|
53
|
-
exec?: ActionFunction<TContext, TEvent
|
|
38
|
+
exec?: ActionFunction<TContext, TEvent> | undefined;
|
|
54
39
|
}
|
|
55
40
|
export declare type DefaultContext = Record<string, any> | undefined;
|
|
56
41
|
export declare type EventData = Record<string, any> & {
|
|
@@ -60,7 +45,7 @@ export declare type EventData = Record<string, any> & {
|
|
|
60
45
|
* The specified string event types or the specified event objects.
|
|
61
46
|
*/
|
|
62
47
|
export declare type Event<TEvent extends EventObject> = TEvent['type'] | TEvent;
|
|
63
|
-
export interface ActionMeta<TContext, TEvent extends EventObject, TAction extends
|
|
48
|
+
export interface ActionMeta<TContext, TEvent extends EventObject, TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> extends StateMeta<TContext, TEvent> {
|
|
64
49
|
action: TAction;
|
|
65
50
|
_event: SCXML.Event<TEvent>;
|
|
66
51
|
}
|
|
@@ -69,9 +54,7 @@ export interface AssignMeta<TContext, TEvent extends EventObject> {
|
|
|
69
54
|
action: AssignAction<TContext, TEvent>;
|
|
70
55
|
_event: SCXML.Event<TEvent>;
|
|
71
56
|
}
|
|
72
|
-
export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends
|
|
73
|
-
bivarianceHack(context: TContext, event: TEvent, meta: ActionMeta<TContext, TEvent, TAction>): void;
|
|
74
|
-
}['bivarianceHack'];
|
|
57
|
+
export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> = (context: TContext, event: TEvent, meta: ActionMeta<TContext, TEvent, TAction>) => void;
|
|
75
58
|
export interface ChooseCondition<TContext, TEvent extends EventObject> {
|
|
76
59
|
cond?: Condition<TContext, TEvent>;
|
|
77
60
|
actions: Actions<TContext, TEvent>;
|
|
@@ -99,14 +82,6 @@ export interface StateValueMap {
|
|
|
99
82
|
* - For complex state nodes, this is an object, e.g., `{ success: "someChildState" }`.
|
|
100
83
|
*/
|
|
101
84
|
export declare type StateValue = string | StateValueMap;
|
|
102
|
-
declare type KeysWithStates<TStates extends Record<string, StateSchema> | undefined> = TStates extends object ? {
|
|
103
|
-
[K in keyof TStates]-?: TStates[K] extends {
|
|
104
|
-
states: object;
|
|
105
|
-
} ? K : never;
|
|
106
|
-
}[keyof TStates] : never;
|
|
107
|
-
export declare type ExtractStateValue<TSchema extends Required<Pick<StateSchema<any>, 'states'>>> = keyof TSchema['states'] | (KeysWithStates<TSchema['states']> extends never ? never : {
|
|
108
|
-
[K in KeysWithStates<TSchema['states']>]?: ExtractStateValue<TSchema['states'][K]>;
|
|
109
|
-
});
|
|
110
85
|
export interface HistoryValue {
|
|
111
86
|
states: Record<string, HistoryValue | undefined>;
|
|
112
87
|
current: StateValue | undefined;
|
|
@@ -132,7 +107,7 @@ export interface TransitionConfig<TContext, TEvent extends EventObject> {
|
|
|
132
107
|
actions?: Actions<TContext, TEvent>;
|
|
133
108
|
in?: StateValue;
|
|
134
109
|
internal?: boolean;
|
|
135
|
-
target?: TransitionTarget<TContext, TEvent
|
|
110
|
+
target?: TransitionTarget<TContext, TEvent> | undefined;
|
|
136
111
|
meta?: Record<string, any>;
|
|
137
112
|
description?: string;
|
|
138
113
|
}
|
|
@@ -371,7 +346,7 @@ export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEv
|
|
|
371
346
|
*
|
|
372
347
|
* This is equivalent to defining a `[done(id)]` transition on this state node's `on` property.
|
|
373
348
|
*/
|
|
374
|
-
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneEventObject
|
|
349
|
+
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneEventObject>> | undefined;
|
|
375
350
|
/**
|
|
376
351
|
* The mapping (or array) of delays (in milliseconds) to their potential transition(s).
|
|
377
352
|
* The delayed transitions are taken after the specified delay in an interpreter.
|
|
@@ -480,7 +455,7 @@ export interface FinalStateNodeConfig<TContext, TEvent extends EventObject> exte
|
|
|
480
455
|
data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
|
|
481
456
|
}
|
|
482
457
|
export declare type SimpleOrStateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TStateSchema, TEvent>;
|
|
483
|
-
export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAction extends
|
|
458
|
+
export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> = {
|
|
484
459
|
[K in TAction['type']]?: ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent, TAction extends {
|
|
485
460
|
type: K;
|
|
486
461
|
} ? TAction : never>;
|
|
@@ -488,44 +463,25 @@ export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAct
|
|
|
488
463
|
export declare type DelayFunctionMap<TContext, TEvent extends EventObject> = Record<string, DelayConfig<TContext, TEvent>>;
|
|
489
464
|
export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | StateMachine<any, any, any> | InvokeCreator<TContext, TEvent>;
|
|
490
465
|
export declare type DelayConfig<TContext, TEvent extends EventObject> = number | DelayExpr<TContext, TEvent>;
|
|
491
|
-
|
|
492
|
-
|
|
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> & {
|
|
466
|
+
export interface MachineOptions<TContext, TEvent extends EventObject, TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> {
|
|
467
|
+
guards: Record<string, ConditionPredicate<TContext, TEvent>>;
|
|
468
|
+
actions: ActionFunctionMap<TContext, TEvent, TAction>;
|
|
522
469
|
/**
|
|
523
470
|
* @deprecated Use `services` instead.
|
|
524
471
|
*/
|
|
525
|
-
activities
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
472
|
+
activities: Record<string, ActivityConfig<TContext, TEvent>>;
|
|
473
|
+
services: Record<string, ServiceConfig<TContext, TEvent>>;
|
|
474
|
+
delays: DelayFunctionMap<TContext, TEvent>;
|
|
475
|
+
/**
|
|
476
|
+
* @private
|
|
477
|
+
*/
|
|
478
|
+
_parent?: StateNode<TContext, any, TEvent, any>;
|
|
479
|
+
/**
|
|
480
|
+
* @private
|
|
481
|
+
*/
|
|
482
|
+
_key?: string;
|
|
483
|
+
}
|
|
484
|
+
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = ActionObject<TContext, TEvent>> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
|
|
529
485
|
/**
|
|
530
486
|
* The initial context (extended state)
|
|
531
487
|
*/
|
|
@@ -535,7 +491,6 @@ export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEven
|
|
|
535
491
|
*/
|
|
536
492
|
version?: string;
|
|
537
493
|
schema?: MachineSchema<TContext, TEvent>;
|
|
538
|
-
tsTypes?: TTypesMeta | true;
|
|
539
494
|
}
|
|
540
495
|
export interface MachineSchema<TContext, TEvent extends EventObject> {
|
|
541
496
|
context?: TContext;
|
|
@@ -570,19 +525,13 @@ export interface HistoryStateNode<TContext> extends StateNode<TContext> {
|
|
|
570
525
|
export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TTypestate extends Typestate<TContext> = {
|
|
571
526
|
value: any;
|
|
572
527
|
context: TContext;
|
|
573
|
-
},
|
|
528
|
+
}, _TAction extends ActionObject<TContext, TEvent> = ActionObject<TContext, TEvent>> extends StateNode<TContext, TStateSchema, TEvent, TTypestate> {
|
|
574
529
|
id: string;
|
|
575
|
-
states: StateNode<TContext, TStateSchema, TEvent
|
|
576
|
-
withConfig(options:
|
|
577
|
-
withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate
|
|
578
|
-
|
|
579
|
-
|
|
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;
|
|
530
|
+
states: StateNode<TContext, TStateSchema, TEvent>['states'];
|
|
531
|
+
withConfig(options: Partial<MachineOptions<TContext, TEvent>>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
|
|
532
|
+
withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
|
|
533
|
+
}
|
|
534
|
+
export declare type StateFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>)> = T extends StateMachine<any, any, any> ? ReturnType<T['transition']> : T extends (...args: any[]) => StateMachine<any, any, any> ? ReturnType<ReturnType<T>['transition']> : never;
|
|
586
535
|
export interface ActionMap<TContext, TEvent extends EventObject> {
|
|
587
536
|
onEntry: Array<Action<TContext, TEvent>>;
|
|
588
537
|
actions: Array<Action<TContext, TEvent>>;
|
|
@@ -601,13 +550,13 @@ export interface ActivityMap {
|
|
|
601
550
|
}
|
|
602
551
|
export interface StateTransition<TContext, TEvent extends EventObject> {
|
|
603
552
|
transitions: Array<TransitionDefinition<TContext, TEvent>>;
|
|
604
|
-
configuration: Array<StateNode<TContext, any, TEvent, any
|
|
605
|
-
entrySet: Array<StateNode<TContext, any, TEvent, any
|
|
606
|
-
exitSet: Array<StateNode<TContext, any, TEvent, any
|
|
553
|
+
configuration: Array<StateNode<TContext, any, TEvent, any>>;
|
|
554
|
+
entrySet: Array<StateNode<TContext, any, TEvent, any>>;
|
|
555
|
+
exitSet: Array<StateNode<TContext, any, TEvent, any>>;
|
|
607
556
|
/**
|
|
608
557
|
* The source state that preceded the transition.
|
|
609
558
|
*/
|
|
610
|
-
source: State<TContext, any, any, any
|
|
559
|
+
source: State<TContext, any, any, any> | undefined;
|
|
611
560
|
actions: Array<ActionObject<TContext, TEvent>>;
|
|
612
561
|
}
|
|
613
562
|
export interface TransitionData<TContext, TEvent extends EventObject> {
|
|
@@ -828,7 +777,7 @@ export interface SCXMLEventMeta<TEvent extends EventObject> {
|
|
|
828
777
|
_event: SCXML.Event<TEvent>;
|
|
829
778
|
}
|
|
830
779
|
export interface StateMeta<TContext, TEvent extends EventObject> {
|
|
831
|
-
state: State<TContext, TEvent, any, any
|
|
780
|
+
state: State<TContext, TEvent, any, any>;
|
|
832
781
|
_event: SCXML.Event<TEvent>;
|
|
833
782
|
}
|
|
834
783
|
export interface Typestate<TContext> {
|
|
@@ -847,7 +796,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
847
796
|
_event: SCXML.Event<TEvent>;
|
|
848
797
|
_sessionid: string | null;
|
|
849
798
|
historyValue?: HistoryValue | undefined;
|
|
850
|
-
history?: State<TContext, TEvent
|
|
799
|
+
history?: State<TContext, TEvent>;
|
|
851
800
|
actions?: Array<ActionObject<TContext, TEvent>>;
|
|
852
801
|
/**
|
|
853
802
|
* @deprecated
|
|
@@ -860,7 +809,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
860
809
|
children: Record<string, ActorRef<any>>;
|
|
861
810
|
done?: boolean;
|
|
862
811
|
tags?: Set<string>;
|
|
863
|
-
machine?: StateMachine<TContext, any, TEvent, any
|
|
812
|
+
machine?: StateMachine<TContext, any, TEvent, any>;
|
|
864
813
|
}
|
|
865
814
|
export interface StateSchema<TC = any> {
|
|
866
815
|
meta?: any;
|
|
@@ -873,9 +822,9 @@ export interface InterpreterOptions {
|
|
|
873
822
|
/**
|
|
874
823
|
* Whether state actions should be executed immediately upon transition. Defaults to `true`.
|
|
875
824
|
*/
|
|
876
|
-
execute
|
|
877
|
-
clock
|
|
878
|
-
logger
|
|
825
|
+
execute: boolean;
|
|
826
|
+
clock: Clock;
|
|
827
|
+
logger: (...args: any[]) => void;
|
|
879
828
|
parent?: AnyInterpreter;
|
|
880
829
|
/**
|
|
881
830
|
* If `true`, defers processing of sent events until the service
|
|
@@ -884,7 +833,7 @@ export interface InterpreterOptions {
|
|
|
884
833
|
*
|
|
885
834
|
* Default: `true`
|
|
886
835
|
*/
|
|
887
|
-
deferEvents
|
|
836
|
+
deferEvents: boolean;
|
|
888
837
|
/**
|
|
889
838
|
* The custom `id` for referencing this service.
|
|
890
839
|
*/
|
|
@@ -894,7 +843,8 @@ export interface InterpreterOptions {
|
|
|
894
843
|
*
|
|
895
844
|
* Default: `false`
|
|
896
845
|
*/
|
|
897
|
-
devTools
|
|
846
|
+
devTools: boolean | object;
|
|
847
|
+
[option: string]: any;
|
|
898
848
|
}
|
|
899
849
|
export declare namespace SCXML {
|
|
900
850
|
interface Event<TEvent extends EventObject> {
|
|
@@ -988,17 +938,15 @@ export interface ActorRef<TEvent extends EventObject, TEmitted = any> extends Su
|
|
|
988
938
|
* @deprecated Use `ActorRef` instead.
|
|
989
939
|
*/
|
|
990
940
|
export declare type SpawnedActorRef<TEvent extends EventObject, TEmitted = any> = ActorRef<TEvent, TEmitted>;
|
|
991
|
-
export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext
|
|
941
|
+
export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext>> = ActorRef<TEvent, State<TContext, TEvent, any, TTypestate>> & {
|
|
992
942
|
/**
|
|
993
943
|
* @deprecated Use `.getSnapshot()` instead.
|
|
994
944
|
*/
|
|
995
|
-
state: State<TContext, TEvent, any, TTypestate
|
|
945
|
+
state: State<TContext, TEvent, any, TTypestate>;
|
|
996
946
|
};
|
|
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
|
|
998
|
-
export declare type AnyInterpreter = Interpreter<any, any, any, any
|
|
999
|
-
export declare type InterpreterFrom<T extends StateMachine<any, any, any, any
|
|
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;
|
|
947
|
+
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;
|
|
948
|
+
export declare type AnyInterpreter = Interpreter<any, any, any, any>;
|
|
949
|
+
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;
|
|
1002
950
|
export interface ActorContext<TEvent extends EventObject, TEmitted> {
|
|
1003
951
|
parent?: ActorRef<any, any>;
|
|
1004
952
|
self: ActorRef<TEvent, TEmitted>;
|
|
@@ -1011,7 +959,7 @@ export interface Behavior<TEvent extends EventObject, TEmitted = any> {
|
|
|
1011
959
|
start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
|
|
1012
960
|
}
|
|
1013
961
|
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;
|
|
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;
|
|
962
|
+
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 : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
|
1015
963
|
export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : Extract<TEvent, {
|
|
1016
964
|
type: K;
|
|
1017
965
|
}>;
|
package/es/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
|
|
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;
|
|
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/es/utils.js
CHANGED
|
@@ -36,7 +36,7 @@ function matchesState(parentStateId, childStateId, delimiter) {
|
|
|
36
36
|
}
|
|
37
37
|
function getEventType(event) {
|
|
38
38
|
try {
|
|
39
|
-
return isString(event) || typeof event === 'number' ? ""
|
|
39
|
+
return isString(event) || typeof event === 'number' ? "".concat(event) : event.type;
|
|
40
40
|
} catch (e) {
|
|
41
41
|
throw new Error('Events must be strings or objects with a string event.type property.');
|
|
42
42
|
}
|
|
@@ -49,7 +49,7 @@ function toStatePath(stateId, delimiter) {
|
|
|
49
49
|
|
|
50
50
|
return stateId.toString().split(delimiter);
|
|
51
51
|
} catch (e) {
|
|
52
|
-
throw new Error("'"
|
|
52
|
+
throw new Error("'".concat(stateId, "' is not a valid state path."));
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
function isStateLike(state) {
|
|
@@ -218,7 +218,7 @@ function toStatePaths(stateValue) {
|
|
|
218
218
|
function flatten(array) {
|
|
219
219
|
var _a;
|
|
220
220
|
|
|
221
|
-
return (_a = []).concat.apply(_a, __spreadArray([], __read(array)));
|
|
221
|
+
return (_a = []).concat.apply(_a, __spreadArray([], __read(array), false));
|
|
222
222
|
}
|
|
223
223
|
function toArrayStrict(value) {
|
|
224
224
|
if (isArray(value)) {
|
|
@@ -395,7 +395,7 @@ if (!IS_PRODUCTION) {
|
|
|
395
395
|
}
|
|
396
396
|
|
|
397
397
|
if (console !== undefined) {
|
|
398
|
-
var args = ["Warning: "
|
|
398
|
+
var args = ["Warning: ".concat(message)];
|
|
399
399
|
|
|
400
400
|
if (error) {
|
|
401
401
|
args.push(error);
|
|
@@ -524,15 +524,15 @@ function normalizeTarget(target) {
|
|
|
524
524
|
}
|
|
525
525
|
function reportUnhandledExceptionOnInvocation(originalError, currentError, id) {
|
|
526
526
|
if (!IS_PRODUCTION) {
|
|
527
|
-
var originalStackTrace = originalError.stack ? " Stacktrace was '"
|
|
527
|
+
var originalStackTrace = originalError.stack ? " Stacktrace was '".concat(originalError.stack, "'") : '';
|
|
528
528
|
|
|
529
529
|
if (originalError === currentError) {
|
|
530
530
|
// tslint:disable-next-line:no-console
|
|
531
|
-
console.error("Missing onError handler for invocation '"
|
|
531
|
+
console.error("Missing onError handler for invocation '".concat(id, "', error was '").concat(originalError, "'.").concat(originalStackTrace));
|
|
532
532
|
} else {
|
|
533
|
-
var stackTrace = currentError.stack ? " Stacktrace was '"
|
|
533
|
+
var stackTrace = currentError.stack ? " Stacktrace was '".concat(currentError.stack, "'") : ''; // tslint:disable-next-line:no-console
|
|
534
534
|
|
|
535
|
-
console.error("Missing onError handler and/or unhandled exception/promise rejection for invocation '"
|
|
535
|
+
console.error("Missing onError handler and/or unhandled exception/promise rejection for invocation '".concat(id, "'. ") + "Original error: '".concat(originalError, "'. ").concat(originalStackTrace, " Current error is '").concat(currentError, "'.").concat(stackTrace));
|
|
536
536
|
}
|
|
537
537
|
}
|
|
538
538
|
}
|
|
@@ -548,10 +548,10 @@ function evaluateGuard(machine, guard, context, _event, state) {
|
|
|
548
548
|
return ((guards === null || guards === void 0 ? void 0 : guards[guard.name]) || guard.predicate)(context, _event.data, guardMeta);
|
|
549
549
|
}
|
|
550
550
|
|
|
551
|
-
var condFn = guards
|
|
551
|
+
var condFn = guards[guard.type];
|
|
552
552
|
|
|
553
553
|
if (!condFn) {
|
|
554
|
-
throw new Error("Guard '"
|
|
554
|
+
throw new Error("Guard '".concat(guard.type, "' is not implemented on machine '").concat(machine.id, "'."));
|
|
555
555
|
}
|
|
556
556
|
|
|
557
557
|
return condFn(context, _event.data, guardMeta);
|
package/lib/Actor.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { EventObject, Subscribable, InvokeDefinition, AnyEventObject, StateMachine, Spawnable, SCXML
|
|
1
|
+
import { EventObject, Subscribable, InvokeDefinition, AnyEventObject, StateMachine, Spawnable, SCXML } from './types';
|
|
2
|
+
import { ActorRef, BaseActorRef } from '.';
|
|
2
3
|
export interface Actor<TContext = any, TEvent extends EventObject = AnyEventObject> extends Subscribable<TContext> {
|
|
3
4
|
id: string;
|
|
4
5
|
send: (event: TEvent) => any;
|
package/lib/Machine.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { Model } from './model.types';
|
|
2
|
-
import { AnyEventObject,
|
|
3
|
-
import { TypegenConstraint, TypegenDisabled, ResolveTypegenMeta } from './typegenTypes';
|
|
2
|
+
import { AnyEventObject, DefaultContext, EventObject, MachineConfig, MachineOptions, StateMachine, StateSchema, Typestate } from './types';
|
|
4
3
|
/**
|
|
5
4
|
* @deprecated Use `createMachine(...)` instead.
|
|
6
5
|
*/
|
|
7
|
-
export declare function Machine<TContext = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, any, TEvent>, options?: MachineOptions<TContext, TEvent
|
|
8
|
-
export declare function Machine<TContext = DefaultContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, TStateSchema, TEvent>, options?: MachineOptions<TContext, TEvent
|
|
6
|
+
export declare function Machine<TContext = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, any, TEvent>, options?: Partial<MachineOptions<TContext, TEvent>>, initialContext?: TContext): StateMachine<TContext, any, TEvent>;
|
|
7
|
+
export declare function Machine<TContext = DefaultContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, TStateSchema, TEvent>, options?: Partial<MachineOptions<TContext, TEvent>>, initialContext?: TContext): StateMachine<TContext, TStateSchema, TEvent>;
|
|
9
8
|
export declare function createMachine<TContext, TEvent extends EventObject = AnyEventObject, TTypestate extends Typestate<TContext> = {
|
|
10
9
|
value: any;
|
|
11
10
|
context: TContext;
|
|
12
|
-
}
|
|
11
|
+
}>(config: TContext extends Model<any, any, any, any> ? 'Model type no longer supported as generic type. Please use `model.createMachine(...)` instead.' : MachineConfig<TContext, any, TEvent>, options?: Partial<MachineOptions<TContext, TEvent>>): StateMachine<TContext, any, TEvent, TTypestate>;
|
|
13
12
|
//# sourceMappingURL=Machine.d.ts.map
|
package/lib/SimulatedClock.js
CHANGED
|
@@ -15,10 +15,14 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
15
15
|
}
|
|
16
16
|
return ar;
|
|
17
17
|
};
|
|
18
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
19
|
-
for (var i = 0,
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
22
26
|
};
|
|
23
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
28
|
exports.SimulatedClock = void 0;
|
|
@@ -55,7 +59,7 @@ var SimulatedClock = /** @class */ (function () {
|
|
|
55
59
|
};
|
|
56
60
|
SimulatedClock.prototype.flushTimeouts = function () {
|
|
57
61
|
var _this = this;
|
|
58
|
-
__spreadArray([], __read(this.timeouts)).sort(function (_a, _b) {
|
|
62
|
+
__spreadArray([], __read(this.timeouts), false).sort(function (_a, _b) {
|
|
59
63
|
var _c = __read(_a, 2), _idA = _c[0], timeoutA = _c[1];
|
|
60
64
|
var _d = __read(_b, 2), _idB = _d[0], timeoutB = _d[1];
|
|
61
65
|
var endA = timeoutA.start + timeoutA.timeout;
|
package/lib/State.d.ts
CHANGED
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import { StateValue, ActivityMap, EventObject, HistoryValue, ActionObject, EventType, StateConfig, SCXML, StateSchema, TransitionDefinition, Typestate, ActorRef, StateMachine, SimpleEventsOf } from './types';
|
|
2
2
|
import { StateNode } from './StateNode';
|
|
3
|
-
import { TypegenDisabled, TypegenEnabled } from './typegenTypes';
|
|
4
|
-
import { BaseActionObject, Prop } from './types';
|
|
5
3
|
export declare function stateValuesEqual(a: StateValue | undefined, b: StateValue | undefined): boolean;
|
|
6
4
|
export declare function isState<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
|
|
7
5
|
value: any;
|
|
8
6
|
context: TContext;
|
|
9
|
-
}
|
|
10
|
-
export declare function bindActionToState<TC, TE extends EventObject>(action: ActionObject<TC, TE>, state: State<TC, TE, any, any
|
|
7
|
+
}>(state: object | string): state is State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
8
|
+
export declare function bindActionToState<TC, TE extends EventObject>(action: ActionObject<TC, TE>, state: State<TC, TE, any, any>): ActionObject<TC, TE>;
|
|
11
9
|
export declare class State<TContext, TEvent extends EventObject = EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
|
|
12
10
|
value: any;
|
|
13
11
|
context: TContext;
|
|
14
|
-
}
|
|
12
|
+
}> {
|
|
15
13
|
value: StateValue;
|
|
16
14
|
context: TContext;
|
|
17
15
|
historyValue?: HistoryValue | undefined;
|
|
18
|
-
history?: State<TContext, TEvent, TStateSchema, TTypestate
|
|
16
|
+
history?: State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
19
17
|
actions: Array<ActionObject<TContext, TEvent>>;
|
|
20
18
|
activities: ActivityMap;
|
|
21
19
|
meta: any;
|
|
@@ -53,13 +51,13 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
|
|
|
53
51
|
*/
|
|
54
52
|
children: Record<string, ActorRef<any>>;
|
|
55
53
|
tags: Set<string>;
|
|
56
|
-
machine: StateMachine<TContext, any, TEvent, TTypestate
|
|
54
|
+
machine: StateMachine<TContext, any, TEvent, TTypestate> | undefined;
|
|
57
55
|
/**
|
|
58
56
|
* Creates a new State instance for the given `stateValue` and `context`.
|
|
59
57
|
* @param stateValue
|
|
60
58
|
* @param context
|
|
61
59
|
*/
|
|
62
|
-
static from<TC, TE extends EventObject = EventObject>(stateValue: State<TC, TE, any, any
|
|
60
|
+
static from<TC, TE extends EventObject = EventObject>(stateValue: State<TC, TE, any, any> | StateValue, context?: TC | undefined): State<TC, TE, any, any>;
|
|
63
61
|
/**
|
|
64
62
|
* Creates a new State instance for the given `config`.
|
|
65
63
|
* @param config The state config
|
|
@@ -90,26 +88,29 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
|
|
|
90
88
|
* @param delimiter The character(s) that separate each subpath in the string state node path.
|
|
91
89
|
*/
|
|
92
90
|
toStrings(stateValue?: StateValue, delimiter?: string): string[];
|
|
93
|
-
toJSON(): Omit<this, "
|
|
91
|
+
toJSON(): Omit<this, "machine" | "tags" | "transitions" | "configuration"> & {
|
|
94
92
|
tags: string[];
|
|
95
93
|
};
|
|
96
94
|
/**
|
|
97
95
|
* Whether the current state value is a subset of the given parent state value.
|
|
98
96
|
* @param parentStateValue
|
|
99
97
|
*/
|
|
100
|
-
matches<TSV extends TTypestate['value']>(parentStateValue:
|
|
98
|
+
matches<TSV extends TTypestate['value']>(parentStateValue: TSV): this is State<(TTypestate extends any ? {
|
|
101
99
|
value: TSV;
|
|
102
100
|
context: any;
|
|
103
|
-
} extends TTypestate ? TTypestate : never : never)['context'], TEvent, TStateSchema, TTypestate
|
|
101
|
+
} extends TTypestate ? TTypestate : never : never)['context'], TEvent, TStateSchema, TTypestate> & {
|
|
104
102
|
value: TSV;
|
|
105
103
|
};
|
|
106
104
|
/**
|
|
107
105
|
* Whether the current state configuration has a state node with the specified `tag`.
|
|
108
106
|
* @param tag
|
|
109
107
|
*/
|
|
110
|
-
hasTag(tag:
|
|
108
|
+
hasTag(tag: string): boolean;
|
|
111
109
|
/**
|
|
112
|
-
* Determines whether sending the `event` will cause a transition
|
|
110
|
+
* Determines whether sending the `event` will cause a non-forbidden transition
|
|
111
|
+
* to be selected, even if the transitions have no actions nor
|
|
112
|
+
* change the state value.
|
|
113
|
+
*
|
|
113
114
|
* @param event The event to test
|
|
114
115
|
* @returns Whether the event will cause a transition
|
|
115
116
|
*/
|
package/lib/State.js
CHANGED
|
@@ -215,7 +215,7 @@ function () {
|
|
|
215
215
|
return _this.toStrings(stateValue[key], delimiter).map(function (s) {
|
|
216
216
|
return key + delimiter + s;
|
|
217
217
|
});
|
|
218
|
-
}))));
|
|
218
|
+
})), false));
|
|
219
219
|
};
|
|
220
220
|
|
|
221
221
|
State.prototype.toJSON = function () {
|
|
@@ -249,7 +249,10 @@ function () {
|
|
|
249
249
|
return this.tags.has(tag);
|
|
250
250
|
};
|
|
251
251
|
/**
|
|
252
|
-
* Determines whether sending the `event` will cause a transition
|
|
252
|
+
* Determines whether sending the `event` will cause a non-forbidden transition
|
|
253
|
+
* to be selected, even if the transitions have no actions nor
|
|
254
|
+
* change the state value.
|
|
255
|
+
*
|
|
253
256
|
* @param event The event to test
|
|
254
257
|
* @returns Whether the event will cause a transition
|
|
255
258
|
*/
|
|
@@ -262,7 +265,11 @@ function () {
|
|
|
262
265
|
utils.warn(!!this.machine, "state.can(...) used outside of a machine-created State object; this will always return false.");
|
|
263
266
|
}
|
|
264
267
|
|
|
265
|
-
|
|
268
|
+
var transitionData = (_a = this.machine) === null || _a === void 0 ? void 0 : _a.getTransitionData(this, event);
|
|
269
|
+
return !!(transitionData === null || transitionData === void 0 ? void 0 : transitionData.transitions.length) && // Check that at least one transition is not forbidden
|
|
270
|
+
transitionData.transitions.some(function (t) {
|
|
271
|
+
return t.target !== undefined || t.actions.length;
|
|
272
|
+
});
|
|
266
273
|
};
|
|
267
274
|
|
|
268
275
|
return State;
|