xstate 4.30.3 → 4.30.6
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 +46 -0
- package/dist/xstate.interpreter.js +1 -1
- package/dist/xstate.js +1 -1
- package/dist/xstate.web.js +2 -2
- package/es/SimulatedClock.js +81 -0
- package/es/State.js +15 -10
- package/es/StateNode.js +10 -9
- package/es/actions.js +1 -1
- package/es/behaviors.js +71 -5
- package/es/devTools.js +5 -2
- package/es/each.js +13 -0
- package/es/index.js +5 -5
- package/es/interpreter.d.ts +1 -3
- package/es/interpreter.js +25 -26
- package/es/invokeUtils.js +4 -4
- package/es/json.js +86 -0
- package/es/model.js +50 -0
- package/es/patterns.js +48 -0
- package/es/types.d.ts +6 -6
- package/es/utils.d.ts +1 -0
- package/es/utils.js +52 -2
- package/lib/SimulatedClock.js +83 -81
- package/lib/State.js +14 -8
- package/lib/StateNode.js +7 -6
- package/lib/actions.js +1 -1
- package/lib/behaviors.js +72 -4
- package/lib/devTools.js +5 -2
- package/lib/each.js +14 -12
- package/lib/index.js +21 -27
- package/lib/interpreter.d.ts +1 -3
- package/lib/interpreter.js +25 -25
- package/lib/invokeUtils.js +4 -4
- package/lib/json.js +81 -72
- package/lib/model.js +49 -69
- package/lib/patterns.js +45 -53
- package/lib/types.d.ts +6 -6
- package/lib/types.js +4 -0
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +53 -0
- package/package.json +3 -2
package/lib/model.js
CHANGED
|
@@ -1,74 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _tslib = require('./_virtual/_tslib.js');
|
|
6
|
+
var actions = require('./actions.js');
|
|
7
|
+
var Machine = require('./Machine.js');
|
|
8
|
+
var utils = require('./utils.js');
|
|
9
|
+
|
|
10
|
+
function createModel(initialContext, creators) {
|
|
11
|
+
var eventCreators = creators === null || creators === void 0 ? void 0 : creators.events;
|
|
12
|
+
var actionCreators = creators === null || creators === void 0 ? void 0 : creators.actions;
|
|
13
|
+
var model = {
|
|
14
|
+
initialContext: initialContext,
|
|
15
|
+
assign: actions.assign,
|
|
16
|
+
events: eventCreators ? utils.mapValues(eventCreators, function (fn, eventType) {
|
|
17
|
+
return function () {
|
|
18
|
+
var args = [];
|
|
19
|
+
|
|
20
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
21
|
+
args[_i] = arguments[_i];
|
|
24
22
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
|
|
24
|
+
return _tslib.__assign(_tslib.__assign({}, fn.apply(void 0, _tslib.__spreadArray([], _tslib.__read(args), false))), {
|
|
25
|
+
type: eventType
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
}) : undefined,
|
|
29
|
+
actions: actionCreators ? utils.mapValues(actionCreators, function (fn, actionType) {
|
|
30
|
+
return function () {
|
|
31
|
+
var args = [];
|
|
32
|
+
|
|
33
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
34
|
+
args[_i] = arguments[_i];
|
|
34
35
|
}
|
|
36
|
+
|
|
37
|
+
return _tslib.__assign(_tslib.__assign({}, fn.apply(void 0, _tslib.__spreadArray([], _tslib.__read(args), false))), {
|
|
38
|
+
type: actionType
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
}) : undefined,
|
|
42
|
+
reset: function () {
|
|
43
|
+
return actions.assign(initialContext);
|
|
44
|
+
},
|
|
45
|
+
createMachine: function (config, implementations) {
|
|
46
|
+
return Machine.createMachine('context' in config ? config : _tslib.__assign(_tslib.__assign({}, config), {
|
|
47
|
+
context: initialContext
|
|
48
|
+
}), implementations);
|
|
35
49
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.createModel = void 0;
|
|
40
|
-
var actions_1 = require("./actions");
|
|
41
|
-
var Machine_1 = require("./Machine");
|
|
42
|
-
var utils_1 = require("./utils");
|
|
43
|
-
function createModel(initialContext, creators) {
|
|
44
|
-
var eventCreators = creators === null || creators === void 0 ? void 0 : creators.events;
|
|
45
|
-
var actionCreators = creators === null || creators === void 0 ? void 0 : creators.actions;
|
|
46
|
-
var model = {
|
|
47
|
-
initialContext: initialContext,
|
|
48
|
-
assign: actions_1.assign,
|
|
49
|
-
events: (eventCreators
|
|
50
|
-
? (0, utils_1.mapValues)(eventCreators, function (fn, eventType) { return function () {
|
|
51
|
-
var args = [];
|
|
52
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
53
|
-
args[_i] = arguments[_i];
|
|
54
|
-
}
|
|
55
|
-
return (__assign(__assign({}, fn.apply(void 0, __spreadArray([], __read(args), false))), { type: eventType }));
|
|
56
|
-
}; })
|
|
57
|
-
: undefined),
|
|
58
|
-
actions: actionCreators
|
|
59
|
-
? (0, utils_1.mapValues)(actionCreators, function (fn, actionType) { return function () {
|
|
60
|
-
var args = [];
|
|
61
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
62
|
-
args[_i] = arguments[_i];
|
|
63
|
-
}
|
|
64
|
-
return (__assign(__assign({}, fn.apply(void 0, __spreadArray([], __read(args), false))), { type: actionType }));
|
|
65
|
-
}; })
|
|
66
|
-
: undefined,
|
|
67
|
-
reset: function () { return (0, actions_1.assign)(initialContext); },
|
|
68
|
-
createMachine: function (config, implementations) {
|
|
69
|
-
return (0, Machine_1.createMachine)('context' in config ? config : __assign(__assign({}, config), { context: initialContext }), implementations);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
return model;
|
|
50
|
+
};
|
|
51
|
+
return model;
|
|
73
52
|
}
|
|
53
|
+
|
|
74
54
|
exports.createModel = createModel;
|
package/lib/patterns.js
CHANGED
|
@@ -1,61 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.sequence = exports.toggle = void 0;
|
|
15
|
-
var utils_1 = require("./utils");
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _tslib = require('./_virtual/_tslib.js');
|
|
6
|
+
var utils = require('./utils.js');
|
|
7
|
+
|
|
16
8
|
function toggle(onState, offState, eventType) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
_a;
|
|
9
|
+
var _a, _b, _c;
|
|
10
|
+
|
|
11
|
+
return _a = {}, _a[onState] = {
|
|
12
|
+
on: (_b = {}, _b[eventType] = offState, _b)
|
|
13
|
+
}, _a[offState] = {
|
|
14
|
+
on: (_c = {}, _c[eventType] = onState, _c)
|
|
15
|
+
}, _a;
|
|
26
16
|
}
|
|
27
|
-
exports.toggle = toggle;
|
|
28
17
|
var defaultSequencePatternOptions = {
|
|
29
|
-
|
|
30
|
-
|
|
18
|
+
nextEvent: 'NEXT',
|
|
19
|
+
prevEvent: 'PREV'
|
|
31
20
|
};
|
|
32
21
|
function sequence(items, options) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
items.forEach(function (item, i) {
|
|
42
|
-
var state = {
|
|
43
|
-
on: {}
|
|
44
|
-
};
|
|
45
|
-
if (i + 1 === items.length) {
|
|
46
|
-
state.type = 'final';
|
|
47
|
-
}
|
|
48
|
-
if (nextEventObject && i + 1 < items.length) {
|
|
49
|
-
state.on[nextEventObject.type] = items[i + 1];
|
|
50
|
-
}
|
|
51
|
-
if (prevEventObject && i > 0) {
|
|
52
|
-
state.on[prevEventObject.type] = items[i - 1];
|
|
53
|
-
}
|
|
54
|
-
states[item] = state;
|
|
55
|
-
});
|
|
56
|
-
return {
|
|
57
|
-
initial: items[0],
|
|
58
|
-
states: states
|
|
22
|
+
var resolvedOptions = _tslib.__assign(_tslib.__assign({}, defaultSequencePatternOptions), options);
|
|
23
|
+
|
|
24
|
+
var states = {};
|
|
25
|
+
var nextEventObject = resolvedOptions.nextEvent === undefined ? undefined : utils.toEventObject(resolvedOptions.nextEvent);
|
|
26
|
+
var prevEventObject = resolvedOptions.prevEvent === undefined ? undefined : utils.toEventObject(resolvedOptions.prevEvent);
|
|
27
|
+
items.forEach(function (item, i) {
|
|
28
|
+
var state = {
|
|
29
|
+
on: {}
|
|
59
30
|
};
|
|
31
|
+
|
|
32
|
+
if (i + 1 === items.length) {
|
|
33
|
+
state.type = 'final';
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (nextEventObject && i + 1 < items.length) {
|
|
37
|
+
state.on[nextEventObject.type] = items[i + 1];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (prevEventObject && i > 0) {
|
|
41
|
+
state.on[prevEventObject.type] = items[i - 1];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
states[item] = state;
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
initial: items[0],
|
|
48
|
+
states: states
|
|
49
|
+
};
|
|
60
50
|
}
|
|
51
|
+
|
|
61
52
|
exports.sequence = sequence;
|
|
53
|
+
exports.toggle = toggle;
|
package/lib/types.d.ts
CHANGED
|
@@ -526,7 +526,7 @@ export declare type InternalMachineOptions<TContext, TEvent extends EventObject,
|
|
|
526
526
|
activities?: Record<string, ActivityConfig<TContext, TEvent>>;
|
|
527
527
|
};
|
|
528
528
|
export declare type MachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction, TServiceMap>>;
|
|
529
|
-
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta = TypegenDisabled> extends StateNodeConfig<NoInfer<TContext>, TStateSchema, TEvent
|
|
529
|
+
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta = TypegenDisabled> extends StateNodeConfig<NoInfer<TContext>, TStateSchema, NoInfer<TEvent>, TAction> {
|
|
530
530
|
/**
|
|
531
531
|
* The initial context (extended state)
|
|
532
532
|
*/
|
|
@@ -572,7 +572,7 @@ export interface HistoryStateNode<TContext> extends StateNode<TContext> {
|
|
|
572
572
|
export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TTypestate extends Typestate<TContext> = {
|
|
573
573
|
value: any;
|
|
574
574
|
context: TContext;
|
|
575
|
-
}, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, TEvent
|
|
575
|
+
}, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, NoInfer<TEvent>, TAction, TServiceMap>> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta> {
|
|
576
576
|
id: string;
|
|
577
577
|
states: StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>['states'];
|
|
578
578
|
withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, TServiceMap, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta>;
|
|
@@ -1011,9 +1011,9 @@ export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventOb
|
|
|
1011
1011
|
*/
|
|
1012
1012
|
state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>;
|
|
1013
1013
|
};
|
|
1014
|
-
export declare type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, TResolvedTypesMeta
|
|
1014
|
+
export declare type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, MarkAllImplementationsAsProvided<TResolvedTypesMeta>> : R extends Promise<infer U> ? ActorRef<never, U> : R extends Behavior<infer TEvent, infer TEmitted> ? ActorRef<TEvent, TEmitted> : never : never;
|
|
1015
1015
|
export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
|
|
1016
|
-
export declare type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate,
|
|
1016
|
+
export declare type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, MarkAllImplementationsAsProvided<TResolvedTypesMeta>> : never;
|
|
1017
1017
|
export declare type MachineOptionsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
1018
1018
|
export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
1019
1019
|
export interface ActorContext<TEvent extends EventObject, TEmitted> {
|
|
@@ -1028,10 +1028,10 @@ export interface Behavior<TEvent extends EventObject, TEmitted = any> {
|
|
|
1028
1028
|
start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
|
|
1029
1029
|
}
|
|
1030
1030
|
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;
|
|
1031
|
-
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
|
|
1031
|
+
declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ___, infer ____, infer _____, infer ______> ? TEvent : R extends Model<infer _, infer TEvent, infer __, infer ___> ? TEvent : R extends State<infer _, infer TEvent, infer __, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ___, infer ____> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
|
1032
1032
|
export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : Extract<TEvent, {
|
|
1033
1033
|
type: K;
|
|
1034
1034
|
}>;
|
|
1035
|
-
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;
|
|
1035
|
+
export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____, infer _____, infer ______> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : never : never;
|
|
1036
1036
|
export {};
|
|
1037
1037
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
exports.ActionTypes = void 0;
|
|
6
|
+
|
|
5
7
|
(function (ActionTypes) {
|
|
6
8
|
ActionTypes["Start"] = "xstate.start";
|
|
7
9
|
ActionTypes["Stop"] = "xstate.stop";
|
|
@@ -25,6 +27,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
25
27
|
ActionTypes["Choose"] = "xstate.choose";
|
|
26
28
|
})(exports.ActionTypes || (exports.ActionTypes = {}));
|
|
27
29
|
|
|
30
|
+
exports.SpecialTargets = void 0;
|
|
31
|
+
|
|
28
32
|
(function (SpecialTargets) {
|
|
29
33
|
SpecialTargets["Parent"] = "#_parent";
|
|
30
34
|
SpecialTargets["Internal"] = "#_internal";
|
package/lib/utils.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { StateNode } from './StateNode';
|
|
|
3
3
|
import { State } from './State';
|
|
4
4
|
import { Actor } from './Actor';
|
|
5
5
|
import { AnyStateMachine } from '.';
|
|
6
|
+
export declare function keys<T extends object>(value: T): Array<keyof T & string>;
|
|
6
7
|
export declare function matchesState(parentStateId: StateValue, childStateId: StateValue, delimiter?: string): boolean;
|
|
7
8
|
export declare function getEventType<TEvent extends EventObject = EventObject>(event: Event<TEvent>): TEvent['type'];
|
|
8
9
|
export declare function getActionType(action: Action<any, any>): ActionType;
|
package/lib/utils.js
CHANGED
|
@@ -7,6 +7,9 @@ var constants = require('./constants.js');
|
|
|
7
7
|
var environment = require('./environment.js');
|
|
8
8
|
|
|
9
9
|
var _a;
|
|
10
|
+
function keys(value) {
|
|
11
|
+
return Object.keys(value);
|
|
12
|
+
}
|
|
10
13
|
function matchesState(parentStateId, childStateId, delimiter) {
|
|
11
14
|
if (delimiter === void 0) {
|
|
12
15
|
delimiter = constants.STATE_DELIMITER;
|
|
@@ -43,6 +46,13 @@ function getEventType(event) {
|
|
|
43
46
|
throw new Error('Events must be strings or objects with a string event.type property.');
|
|
44
47
|
}
|
|
45
48
|
}
|
|
49
|
+
function getActionType(action) {
|
|
50
|
+
try {
|
|
51
|
+
return isString(action) || typeof action === 'number' ? "".concat(action) : isFunction(action) ? action.name : action.type;
|
|
52
|
+
} catch (e) {
|
|
53
|
+
throw new Error('Actions must be strings or objects with a string action.type property.');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
46
56
|
function toStatePath(stateId, delimiter) {
|
|
47
57
|
try {
|
|
48
58
|
if (isArray(stateId)) {
|
|
@@ -217,6 +227,46 @@ function toStatePaths(stateValue) {
|
|
|
217
227
|
}));
|
|
218
228
|
return result;
|
|
219
229
|
}
|
|
230
|
+
function pathsToStateValue(paths) {
|
|
231
|
+
var e_4, _a;
|
|
232
|
+
|
|
233
|
+
var result = {};
|
|
234
|
+
|
|
235
|
+
if (paths && paths.length === 1 && paths[0].length === 1) {
|
|
236
|
+
return paths[0][0];
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
try {
|
|
240
|
+
for (var paths_1 = _tslib.__values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {
|
|
241
|
+
var currentPath = paths_1_1.value;
|
|
242
|
+
var marker = result; // tslint:disable-next-line:prefer-for-of
|
|
243
|
+
|
|
244
|
+
for (var i = 0; i < currentPath.length; i++) {
|
|
245
|
+
var subPath = currentPath[i];
|
|
246
|
+
|
|
247
|
+
if (i === currentPath.length - 2) {
|
|
248
|
+
marker[subPath] = currentPath[i + 1];
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
marker[subPath] = marker[subPath] || {};
|
|
253
|
+
marker = marker[subPath];
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
} catch (e_4_1) {
|
|
257
|
+
e_4 = {
|
|
258
|
+
error: e_4_1
|
|
259
|
+
};
|
|
260
|
+
} finally {
|
|
261
|
+
try {
|
|
262
|
+
if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);
|
|
263
|
+
} finally {
|
|
264
|
+
if (e_4) throw e_4.error;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
return result;
|
|
269
|
+
}
|
|
220
270
|
function flatten(array) {
|
|
221
271
|
var _a;
|
|
222
272
|
|
|
@@ -580,6 +630,7 @@ function createInvokeId(stateNodeId, index) {
|
|
|
580
630
|
exports.createInvokeId = createInvokeId;
|
|
581
631
|
exports.evaluateGuard = evaluateGuard;
|
|
582
632
|
exports.flatten = flatten;
|
|
633
|
+
exports.getActionType = getActionType;
|
|
583
634
|
exports.getEventType = getEventType;
|
|
584
635
|
exports.interopSymbols = interopSymbols;
|
|
585
636
|
exports.isActor = isActor;
|
|
@@ -592,6 +643,7 @@ exports.isObservable = isObservable;
|
|
|
592
643
|
exports.isPromiseLike = isPromiseLike;
|
|
593
644
|
exports.isStateLike = isStateLike;
|
|
594
645
|
exports.isString = isString;
|
|
646
|
+
exports.keys = keys;
|
|
595
647
|
exports.mapContext = mapContext;
|
|
596
648
|
exports.mapFilterValues = mapFilterValues;
|
|
597
649
|
exports.mapValues = mapValues;
|
|
@@ -601,6 +653,7 @@ exports.normalizeTarget = normalizeTarget;
|
|
|
601
653
|
exports.partition = partition;
|
|
602
654
|
exports.path = path;
|
|
603
655
|
exports.pathToStateValue = pathToStateValue;
|
|
656
|
+
exports.pathsToStateValue = pathsToStateValue;
|
|
604
657
|
exports.reportUnhandledExceptionOnInvocation = reportUnhandledExceptionOnInvocation;
|
|
605
658
|
exports.symbolObservable = symbolObservable;
|
|
606
659
|
exports.toArray = toArray;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xstate",
|
|
3
|
-
"version": "4.30.
|
|
3
|
+
"version": "4.30.6",
|
|
4
4
|
"description": "Finite State Machines and Statecharts for the Modern Web.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -48,12 +48,13 @@
|
|
|
48
48
|
"@rollup/plugin-babel": "^5.3.0",
|
|
49
49
|
"@scion-scxml/test-framework": "^2.0.15",
|
|
50
50
|
"babel-plugin-annotate-pure-calls": "^0.4.0",
|
|
51
|
+
"fast-glob": "^3.2.11",
|
|
51
52
|
"jest": "^26.6.3",
|
|
52
53
|
"jsdom": "^14.0.0",
|
|
53
54
|
"jsdom-global": "^3.0.2",
|
|
54
55
|
"lerna-alias": "3.0.3-0",
|
|
55
56
|
"pkg-up": "^3.1.0",
|
|
56
|
-
"rollup": "^2.
|
|
57
|
+
"rollup": "^2.69.0",
|
|
57
58
|
"rollup-plugin-filesize": "^6.2.1",
|
|
58
59
|
"rollup-plugin-replace": "^2.2.0",
|
|
59
60
|
"rollup-plugin-terser": "^5.1.2",
|