xstate 5.0.0-alpha.6 → 5.0.0-beta.10
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/actions/dist/xstate-actions.cjs.d.mts +2 -0
- package/actions/dist/xstate-actions.cjs.d.mts.map +1 -0
- package/actions/dist/xstate-actions.cjs.d.ts +1 -0
- package/actions/dist/xstate-actions.cjs.d.ts.map +1 -0
- package/actions/dist/xstate-actions.cjs.dev.js +2 -2
- package/actions/dist/xstate-actions.cjs.mjs +24 -0
- package/actions/dist/xstate-actions.cjs.prod.js +3 -3
- package/actions/dist/xstate-actions.esm.js +1 -1
- package/actions/dist/xstate-actions.umd.min.js +1 -1
- package/actions/dist/xstate-actions.umd.min.js.map +1 -1
- package/actors/dist/xstate-actors.cjs.d.mts +2 -0
- package/actors/dist/xstate-actors.cjs.d.mts.map +1 -0
- package/actors/dist/xstate-actors.cjs.d.ts +1 -0
- package/actors/dist/xstate-actors.cjs.d.ts.map +1 -0
- package/actors/dist/xstate-actors.cjs.dev.js +2 -1
- package/actors/dist/xstate-actors.cjs.mjs +15 -0
- package/actors/dist/xstate-actors.cjs.prod.js +3 -2
- package/actors/dist/xstate-actors.esm.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js.map +1 -1
- package/dev/dist/xstate-dev.cjs.d.mts +2 -0
- package/dev/dist/xstate-dev.cjs.d.mts.map +1 -0
- package/dev/dist/xstate-dev.cjs.d.ts +1 -0
- package/dev/dist/xstate-dev.cjs.d.ts.map +1 -0
- package/dev/dist/xstate-dev.cjs.mjs +5 -0
- package/dev/dist/xstate-dev.cjs.prod.js +6 -43
- package/dev/dist/xstate-dev.umd.min.js.map +1 -1
- package/dist/{actions-bf7bb1c5.cjs.dev.js → actions-109712d3.cjs.dev.js} +386 -371
- package/dist/{actions-41b74cdc.esm.js → actions-67f1d04e.esm.js} +341 -358
- package/dist/{actions-c46e4911.cjs.prod.js → actions-d0262a43.cjs.prod.js} +409 -380
- package/dist/declarations/src/State.d.ts +2 -3
- package/dist/declarations/src/StateMachine.d.ts +6 -6
- package/dist/declarations/src/StateNode.d.ts +3 -9
- package/dist/declarations/src/actions/send.d.ts +0 -7
- package/dist/declarations/src/actions.d.ts +9 -8
- package/dist/declarations/src/actors/index.d.ts +2 -1
- package/dist/declarations/src/actors/observable.d.ts +1 -2
- package/dist/declarations/src/actors/promise.d.ts +1 -2
- package/dist/declarations/src/guards.d.ts +2 -2
- package/dist/declarations/src/index.d.ts +13 -29
- package/dist/declarations/src/interpreter.d.ts +5 -4
- package/dist/declarations/src/spawn.d.ts +2 -2
- package/dist/declarations/src/stateUtils.d.ts +9 -14
- package/dist/declarations/src/typegenTypes.d.ts +7 -1
- package/dist/declarations/src/types.d.ts +18 -92
- package/dist/declarations/src/utils.d.ts +3 -5
- package/dist/declarations/src/waitFor.d.ts +33 -0
- package/dist/index-0f3fdf0c.cjs.prod.js +52 -0
- package/dist/xstate.cjs.d.mts +2 -0
- package/dist/xstate.cjs.d.mts.map +1 -0
- package/dist/xstate.cjs.d.ts +1 -0
- package/dist/xstate.cjs.d.ts.map +1 -0
- package/dist/xstate.cjs.dev.js +117 -105
- package/dist/xstate.cjs.mjs +38 -0
- package/dist/xstate.cjs.prod.js +115 -106
- package/dist/xstate.esm.js +100 -93
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.cjs.d.mts +2 -0
- package/guards/dist/xstate-guards.cjs.d.mts.map +1 -0
- package/guards/dist/xstate-guards.cjs.d.ts +1 -0
- package/guards/dist/xstate-guards.cjs.d.ts.map +1 -0
- package/guards/dist/xstate-guards.cjs.dev.js +1 -1
- package/guards/dist/xstate-guards.cjs.mjs +8 -0
- package/guards/dist/xstate-guards.cjs.prod.js +2 -2
- package/guards/dist/xstate-guards.esm.js +1 -1
- package/guards/dist/xstate-guards.umd.min.js +1 -1
- package/guards/dist/xstate-guards.umd.min.js.map +1 -1
- package/package.json +7 -1
- package/dist/declarations/src/schema.d.ts +0 -2
|
@@ -3,6 +3,38 @@
|
|
|
3
3
|
var dev_dist_xstateDev = require('./index-ebaab3c9.cjs.dev.js');
|
|
4
4
|
|
|
5
5
|
// https://github.com/microsoft/TypeScript/issues/23182#issuecomment-379091887
|
|
6
|
+
|
|
7
|
+
// TODO: replace in v5 with:
|
|
8
|
+
// export type IndexByType<T extends { type: string }> = { [E in T as E['type']]: E; };
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The full definition of an event, with a string `type`.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
// TODO: do not accept machines without all implementations
|
|
15
|
+
// we should also accept a raw machine as a behavior here
|
|
16
|
+
// or just make machine a behavior
|
|
17
|
+
|
|
18
|
+
// TODO: narrow this to behaviors from machine
|
|
19
|
+
|
|
20
|
+
// TODO: fix last param
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Extracts action objects that have no extra properties.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The string or object representing the state value relative to the parent state node.
|
|
28
|
+
*
|
|
29
|
+
* - For a child atomic state node, this is a string, e.g., `"pending"`.
|
|
30
|
+
* - For complex state nodes, this is an object, e.g., `{ success: "someChildState" }`.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
// TODO: remove once TS fixes this type-widening issue
|
|
34
|
+
|
|
35
|
+
// TODO: possibly refactor this somehow, use even a simpler type, and maybe even make `machine.options` private or something
|
|
36
|
+
|
|
37
|
+
exports.ActionTypes = void 0;
|
|
6
38
|
(function (ActionTypes) {
|
|
7
39
|
ActionTypes["Stop"] = "xstate.stop";
|
|
8
40
|
ActionTypes["Raise"] = "xstate.raise";
|
|
@@ -22,45 +54,46 @@ var dev_dist_xstateDev = require('./index-ebaab3c9.cjs.dev.js');
|
|
|
22
54
|
ActionTypes["Pure"] = "xstate.pure";
|
|
23
55
|
ActionTypes["Choose"] = "xstate.choose";
|
|
24
56
|
})(exports.ActionTypes || (exports.ActionTypes = {}));
|
|
57
|
+
exports.SpecialTargets = void 0;
|
|
25
58
|
(function (SpecialTargets) {
|
|
26
59
|
SpecialTargets["Parent"] = "#_parent";
|
|
27
60
|
SpecialTargets["Internal"] = "#_internal";
|
|
28
61
|
})(exports.SpecialTargets || (exports.SpecialTargets = {}));
|
|
29
62
|
|
|
30
63
|
// xstate-specific action types
|
|
31
|
-
var stop = exports.ActionTypes.Stop;
|
|
32
|
-
var raise = exports.ActionTypes.Raise;
|
|
33
|
-
var send = exports.ActionTypes.Send;
|
|
34
|
-
var cancel = exports.ActionTypes.Cancel;
|
|
35
|
-
var assign = exports.ActionTypes.Assign;
|
|
36
|
-
var after = exports.ActionTypes.After;
|
|
64
|
+
var stop$1 = exports.ActionTypes.Stop;
|
|
65
|
+
var raise$1 = exports.ActionTypes.Raise;
|
|
66
|
+
var send$1 = exports.ActionTypes.Send;
|
|
67
|
+
var cancel$1 = exports.ActionTypes.Cancel;
|
|
68
|
+
var assign$1 = exports.ActionTypes.Assign;
|
|
69
|
+
var after$1 = exports.ActionTypes.After;
|
|
37
70
|
var doneState = exports.ActionTypes.DoneState;
|
|
38
|
-
var log = exports.ActionTypes.Log;
|
|
71
|
+
var log$1 = exports.ActionTypes.Log;
|
|
39
72
|
var init = exports.ActionTypes.Init;
|
|
40
|
-
var invoke = exports.ActionTypes.Invoke;
|
|
73
|
+
var invoke$1 = exports.ActionTypes.Invoke;
|
|
41
74
|
var errorExecution = exports.ActionTypes.ErrorExecution;
|
|
42
75
|
var errorPlatform = exports.ActionTypes.ErrorPlatform;
|
|
43
|
-
var error = exports.ActionTypes.ErrorCustom;
|
|
44
|
-
var choose = exports.ActionTypes.Choose;
|
|
45
|
-
var pure = exports.ActionTypes.Pure;
|
|
76
|
+
var error$1 = exports.ActionTypes.ErrorCustom;
|
|
77
|
+
var choose$1 = exports.ActionTypes.Choose;
|
|
78
|
+
var pure$1 = exports.ActionTypes.Pure;
|
|
46
79
|
|
|
47
80
|
var actionTypes = /*#__PURE__*/Object.freeze({
|
|
48
81
|
__proto__: null,
|
|
49
|
-
stop: stop,
|
|
50
|
-
raise: raise,
|
|
51
|
-
send: send,
|
|
52
|
-
cancel: cancel,
|
|
53
|
-
assign: assign,
|
|
54
|
-
after: after,
|
|
82
|
+
stop: stop$1,
|
|
83
|
+
raise: raise$1,
|
|
84
|
+
send: send$1,
|
|
85
|
+
cancel: cancel$1,
|
|
86
|
+
assign: assign$1,
|
|
87
|
+
after: after$1,
|
|
55
88
|
doneState: doneState,
|
|
56
|
-
log: log,
|
|
89
|
+
log: log$1,
|
|
57
90
|
init: init,
|
|
58
|
-
invoke: invoke,
|
|
91
|
+
invoke: invoke$1,
|
|
59
92
|
errorExecution: errorExecution,
|
|
60
93
|
errorPlatform: errorPlatform,
|
|
61
|
-
error: error,
|
|
62
|
-
choose: choose,
|
|
63
|
-
pure: pure
|
|
94
|
+
error: error$1,
|
|
95
|
+
choose: choose$1,
|
|
96
|
+
pure: pure$1
|
|
64
97
|
});
|
|
65
98
|
|
|
66
99
|
function _toPrimitive(input, hint) {
|
|
@@ -288,7 +321,7 @@ function toStatePath(stateId, delimiter) {
|
|
|
288
321
|
}
|
|
289
322
|
}
|
|
290
323
|
function isStateLike(state) {
|
|
291
|
-
return _typeof(state) === 'object' && 'value' in state && 'context' in state && 'event' in state
|
|
324
|
+
return _typeof(state) === 'object' && 'value' in state && 'context' in state && 'event' in state;
|
|
292
325
|
}
|
|
293
326
|
function toStateValue(stateValue, delimiter) {
|
|
294
327
|
if (isStateLike(stateValue)) {
|
|
@@ -344,17 +377,17 @@ function toArray(value) {
|
|
|
344
377
|
}
|
|
345
378
|
return toArrayStrict(value);
|
|
346
379
|
}
|
|
347
|
-
function mapContext(mapper, context,
|
|
380
|
+
function mapContext(mapper, context, event) {
|
|
348
381
|
if (isFunction(mapper)) {
|
|
349
382
|
return mapper({
|
|
350
383
|
context: context,
|
|
351
|
-
event:
|
|
384
|
+
event: event
|
|
352
385
|
});
|
|
353
386
|
}
|
|
354
387
|
var result = {};
|
|
355
388
|
var args = {
|
|
356
389
|
context: context,
|
|
357
|
-
event:
|
|
390
|
+
event: event
|
|
358
391
|
};
|
|
359
392
|
for (var _i4 = 0, _Object$keys2 = Object.keys(mapper); _i4 < _Object$keys2.length; _i4++) {
|
|
360
393
|
var _key3 = _Object$keys2[_i4];
|
|
@@ -407,22 +440,8 @@ function isFunction(value) {
|
|
|
407
440
|
function isString(value) {
|
|
408
441
|
return typeof value === 'string';
|
|
409
442
|
}
|
|
410
|
-
function
|
|
411
|
-
return
|
|
412
|
-
}
|
|
413
|
-
function isSCXMLErrorEvent(event) {
|
|
414
|
-
return typeof event.name === 'string' && (event.name === errorExecution || event.name.startsWith(errorPlatform));
|
|
415
|
-
}
|
|
416
|
-
function toSCXMLEvent(event, scxmlEvent) {
|
|
417
|
-
if (isSCXMLEvent(event)) {
|
|
418
|
-
return event;
|
|
419
|
-
}
|
|
420
|
-
return _objectSpread2({
|
|
421
|
-
name: event.type,
|
|
422
|
-
data: event,
|
|
423
|
-
$$type: 'scxml',
|
|
424
|
-
type: 'external'
|
|
425
|
-
}, scxmlEvent);
|
|
443
|
+
function isErrorEvent(event) {
|
|
444
|
+
return typeof event.type === 'string' && (event.type === errorExecution || event.type.startsWith(errorPlatform));
|
|
426
445
|
}
|
|
427
446
|
function toTransitionConfigArray(event, configLike) {
|
|
428
447
|
var transitions = toArrayStrict(configLike).map(function (transitionLike) {
|
|
@@ -504,16 +523,16 @@ function isDynamicAction(action) {
|
|
|
504
523
|
* - `delay` - The number of milliseconds to delay the sending of the event.
|
|
505
524
|
* - `to` - The target of this event (by default, the machine the event was sent from).
|
|
506
525
|
*/
|
|
507
|
-
function send
|
|
526
|
+
function send(eventOrExpr, options) {
|
|
508
527
|
return createDynamicAction({
|
|
509
|
-
type: send,
|
|
528
|
+
type: send$1,
|
|
510
529
|
params: {
|
|
511
530
|
to: options ? options.to : undefined,
|
|
512
531
|
delay: options ? options.delay : undefined,
|
|
513
532
|
event: eventOrExpr,
|
|
514
533
|
id: options && options.id !== undefined ? options.id : isFunction(eventOrExpr) ? eventOrExpr.name : eventOrExpr.type
|
|
515
534
|
}
|
|
516
|
-
}, function (
|
|
535
|
+
}, function (event, _ref) {
|
|
517
536
|
var _actorContext$self;
|
|
518
537
|
var actorContext = _ref.actorContext,
|
|
519
538
|
state = _ref.state;
|
|
@@ -527,15 +546,17 @@ function send$1(eventOrExpr, options) {
|
|
|
527
546
|
};
|
|
528
547
|
var args = {
|
|
529
548
|
context: state.context,
|
|
530
|
-
event:
|
|
531
|
-
_event: _event,
|
|
549
|
+
event: event,
|
|
532
550
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : null,
|
|
533
551
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
534
552
|
};
|
|
535
553
|
var delaysMap = state.machine.options.delays;
|
|
536
554
|
|
|
537
555
|
// TODO: helper function for resolving Expr
|
|
538
|
-
|
|
556
|
+
if (typeof eventOrExpr === 'string') {
|
|
557
|
+
throw new Error("Only event objects may be used with sendTo; use sendTo({ type: \"".concat(eventOrExpr, "\" }) instead"));
|
|
558
|
+
}
|
|
559
|
+
var resolvedEvent = isFunction(eventOrExpr) ? eventOrExpr(args) : eventOrExpr;
|
|
539
560
|
var resolvedDelay;
|
|
540
561
|
if (isString(params.delay)) {
|
|
541
562
|
var configDelay = delaysMap && delaysMap[params.delay];
|
|
@@ -564,11 +585,10 @@ function send$1(eventOrExpr, options) {
|
|
|
564
585
|
targetActorRef = resolvedTarget || (actorContext === null || actorContext === void 0 ? void 0 : actorContext.self);
|
|
565
586
|
}
|
|
566
587
|
var resolvedAction = {
|
|
567
|
-
type: send,
|
|
588
|
+
type: send$1,
|
|
568
589
|
params: _objectSpread2(_objectSpread2({}, params), {}, {
|
|
569
590
|
to: targetActorRef,
|
|
570
|
-
|
|
571
|
-
event: resolvedEvent.data,
|
|
591
|
+
event: resolvedEvent,
|
|
572
592
|
delay: resolvedDelay,
|
|
573
593
|
internal: resolvedTarget === exports.SpecialTargets.Internal
|
|
574
594
|
}),
|
|
@@ -579,14 +599,12 @@ function send$1(eventOrExpr, options) {
|
|
|
579
599
|
return;
|
|
580
600
|
} else {
|
|
581
601
|
var target = sendAction.params.to;
|
|
582
|
-
var
|
|
602
|
+
var sentEvent = sendAction.params.event;
|
|
583
603
|
actorCtx.defer(function () {
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
});
|
|
589
|
-
target.send(resolvedEvent);
|
|
604
|
+
target.send(sentEvent.type === error$1 ? {
|
|
605
|
+
type: "".concat(error(actorCtx.self.id)),
|
|
606
|
+
data: sentEvent.data
|
|
607
|
+
} : sendAction.params.event);
|
|
590
608
|
});
|
|
591
609
|
}
|
|
592
610
|
}
|
|
@@ -602,26 +620,11 @@ function send$1(eventOrExpr, options) {
|
|
|
602
620
|
* @param options Options to pass into the send event.
|
|
603
621
|
*/
|
|
604
622
|
function sendParent(event, options) {
|
|
605
|
-
return send
|
|
623
|
+
return send(event, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
606
624
|
to: exports.SpecialTargets.Parent
|
|
607
625
|
}));
|
|
608
626
|
}
|
|
609
627
|
|
|
610
|
-
/**
|
|
611
|
-
* Sends an event back to the sender of the original event.
|
|
612
|
-
*
|
|
613
|
-
* @param event The event to send back to the sender
|
|
614
|
-
* @param options Options to pass into the send event
|
|
615
|
-
*/
|
|
616
|
-
function respond(event, options) {
|
|
617
|
-
return send$1(event, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
618
|
-
to: function to(_ref2) {
|
|
619
|
-
var _event = _ref2._event;
|
|
620
|
-
return _event.origin; // TODO: handle when _event.origin is undefined
|
|
621
|
-
}
|
|
622
|
-
}));
|
|
623
|
-
}
|
|
624
|
-
|
|
625
628
|
/**
|
|
626
629
|
* Forwards (sends) an event to a specified service.
|
|
627
630
|
*
|
|
@@ -629,7 +632,7 @@ function respond(event, options) {
|
|
|
629
632
|
* @param options Options to pass into the send action creator.
|
|
630
633
|
*/
|
|
631
634
|
function forwardTo(target, options) {
|
|
632
|
-
if (process.env.
|
|
635
|
+
if (process.env.NODE_ENV !== 'production' && (!target || typeof target === 'function')) {
|
|
633
636
|
var originalTarget = target;
|
|
634
637
|
target = function target() {
|
|
635
638
|
var resolvedTarget = typeof originalTarget === 'function' ? originalTarget.apply(void 0, arguments) : originalTarget;
|
|
@@ -639,8 +642,8 @@ function forwardTo(target, options) {
|
|
|
639
642
|
return resolvedTarget;
|
|
640
643
|
};
|
|
641
644
|
}
|
|
642
|
-
return send
|
|
643
|
-
var event =
|
|
645
|
+
return send(function (_ref2) {
|
|
646
|
+
var event = _ref2.event;
|
|
644
647
|
return event;
|
|
645
648
|
}, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
646
649
|
to: target
|
|
@@ -657,7 +660,7 @@ function forwardTo(target, options) {
|
|
|
657
660
|
function escalate(errorData, options) {
|
|
658
661
|
return sendParent(function (arg) {
|
|
659
662
|
return {
|
|
660
|
-
type: error,
|
|
663
|
+
type: error$1,
|
|
661
664
|
data: isFunction(errorData) ? errorData(arg) : errorData
|
|
662
665
|
};
|
|
663
666
|
}, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
@@ -674,7 +677,7 @@ function escalate(errorData, options) {
|
|
|
674
677
|
* @returns An XState send action object
|
|
675
678
|
*/
|
|
676
679
|
function sendTo(actor, event, options) {
|
|
677
|
-
return send
|
|
680
|
+
return send(event, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
678
681
|
to: actor
|
|
679
682
|
}));
|
|
680
683
|
}
|
|
@@ -798,11 +801,9 @@ var symbolObservable = function () {
|
|
|
798
801
|
*/
|
|
799
802
|
function fromTransition(_transition, initialState) {
|
|
800
803
|
var behavior = {
|
|
804
|
+
config: _transition,
|
|
801
805
|
transition: function transition(state, event, actorContext) {
|
|
802
|
-
|
|
803
|
-
var resolvedEvent = isSCXMLEvent(event) ? event.data : event;
|
|
804
|
-
// @ts-ignore TODO
|
|
805
|
-
return _transition(state, resolvedEvent, actorContext);
|
|
806
|
+
return _transition(state, event, actorContext);
|
|
806
807
|
},
|
|
807
808
|
getInitialState: function getInitialState(_, input) {
|
|
808
809
|
return typeof initialState === 'function' ? initialState({
|
|
@@ -830,27 +831,29 @@ promiseCreator) {
|
|
|
830
831
|
|
|
831
832
|
// TODO: add event types
|
|
832
833
|
var behavior = {
|
|
834
|
+
config: promiseCreator,
|
|
833
835
|
transition: function transition(state, event) {
|
|
834
|
-
|
|
835
|
-
if (state.canceled) {
|
|
836
|
+
if (state.status !== 'active') {
|
|
836
837
|
return state;
|
|
837
838
|
}
|
|
838
|
-
|
|
839
|
-
switch (_event.name) {
|
|
839
|
+
switch (event.type) {
|
|
840
840
|
case resolveEventType:
|
|
841
|
-
state
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
841
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
842
|
+
status: 'done',
|
|
843
|
+
data: event.data,
|
|
844
|
+
input: undefined
|
|
845
|
+
});
|
|
845
846
|
case rejectEventType:
|
|
846
|
-
state
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
847
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
848
|
+
status: 'error',
|
|
849
|
+
data: event.data,
|
|
850
|
+
input: undefined
|
|
851
|
+
});
|
|
850
852
|
case stopSignalType:
|
|
851
|
-
state
|
|
852
|
-
|
|
853
|
-
|
|
853
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
854
|
+
status: 'canceled',
|
|
855
|
+
input: undefined
|
|
856
|
+
});
|
|
854
857
|
default:
|
|
855
858
|
return state;
|
|
856
859
|
}
|
|
@@ -866,11 +869,19 @@ promiseCreator) {
|
|
|
866
869
|
input: state.input
|
|
867
870
|
}));
|
|
868
871
|
resolvedPromise.then(function (response) {
|
|
872
|
+
// TODO: remove this condition once dead letter queue lands
|
|
873
|
+
if (self._state.status !== 'active') {
|
|
874
|
+
return;
|
|
875
|
+
}
|
|
869
876
|
self.send({
|
|
870
877
|
type: resolveEventType,
|
|
871
878
|
data: response
|
|
872
879
|
});
|
|
873
880
|
}, function (errorData) {
|
|
881
|
+
// TODO: remove this condition once dead letter queue lands
|
|
882
|
+
if (self._state.status !== 'active') {
|
|
883
|
+
return;
|
|
884
|
+
}
|
|
874
885
|
self.send({
|
|
875
886
|
type: rejectEventType,
|
|
876
887
|
data: errorData
|
|
@@ -879,7 +890,6 @@ promiseCreator) {
|
|
|
879
890
|
},
|
|
880
891
|
getInitialState: function getInitialState(_, input) {
|
|
881
892
|
return {
|
|
882
|
-
canceled: false,
|
|
883
893
|
status: 'active',
|
|
884
894
|
data: undefined,
|
|
885
895
|
input: input
|
|
@@ -909,43 +919,48 @@ function fromObservable(observableCreator) {
|
|
|
909
919
|
|
|
910
920
|
// TODO: add event types
|
|
911
921
|
var behavior = {
|
|
922
|
+
config: observableCreator,
|
|
912
923
|
transition: function transition(state, event, _ref) {
|
|
913
924
|
var self = _ref.self,
|
|
914
925
|
id = _ref.id,
|
|
915
926
|
defer = _ref.defer;
|
|
916
|
-
|
|
917
|
-
if (state.canceled) {
|
|
927
|
+
if (state.status !== 'active') {
|
|
918
928
|
return state;
|
|
919
929
|
}
|
|
920
|
-
switch (
|
|
930
|
+
switch (event.type) {
|
|
921
931
|
case nextEventType:
|
|
922
|
-
state.data = event.data.data;
|
|
923
932
|
// match the exact timing of events sent by machines
|
|
924
933
|
// send actions are not executed immediately
|
|
925
934
|
defer(function () {
|
|
926
935
|
var _self$_parent;
|
|
927
|
-
(_self$_parent = self._parent) === null || _self$_parent === void 0 ? void 0 : _self$_parent.send(
|
|
936
|
+
(_self$_parent = self._parent) === null || _self$_parent === void 0 ? void 0 : _self$_parent.send({
|
|
928
937
|
type: "xstate.snapshot.".concat(id),
|
|
929
|
-
data:
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
|
|
938
|
+
data: event.data
|
|
939
|
+
});
|
|
940
|
+
});
|
|
941
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
942
|
+
data: event.data
|
|
933
943
|
});
|
|
934
|
-
return state;
|
|
935
944
|
case errorEventType:
|
|
936
|
-
state
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
945
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
946
|
+
status: 'error',
|
|
947
|
+
input: undefined,
|
|
948
|
+
data: event.data,
|
|
949
|
+
subscription: undefined
|
|
950
|
+
});
|
|
940
951
|
case completeEventType:
|
|
941
|
-
state
|
|
942
|
-
|
|
943
|
-
|
|
952
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
953
|
+
status: 'done',
|
|
954
|
+
input: undefined,
|
|
955
|
+
subscription: undefined
|
|
956
|
+
});
|
|
944
957
|
case stopSignalType:
|
|
945
|
-
state.canceled = true;
|
|
946
|
-
delete state.input;
|
|
947
958
|
state.subscription.unsubscribe();
|
|
948
|
-
return state
|
|
959
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
960
|
+
status: 'canceled',
|
|
961
|
+
input: undefined,
|
|
962
|
+
subscription: undefined
|
|
963
|
+
});
|
|
949
964
|
default:
|
|
950
965
|
return state;
|
|
951
966
|
}
|
|
@@ -953,7 +968,6 @@ function fromObservable(observableCreator) {
|
|
|
953
968
|
getInitialState: function getInitialState(_, input) {
|
|
954
969
|
return {
|
|
955
970
|
subscription: undefined,
|
|
956
|
-
canceled: false,
|
|
957
971
|
status: 'active',
|
|
958
972
|
data: undefined,
|
|
959
973
|
input: input
|
|
@@ -991,12 +1005,10 @@ function fromObservable(observableCreator) {
|
|
|
991
1005
|
return state.data;
|
|
992
1006
|
},
|
|
993
1007
|
getPersistedState: function getPersistedState(_ref3) {
|
|
994
|
-
var
|
|
995
|
-
status = _ref3.status,
|
|
1008
|
+
var status = _ref3.status,
|
|
996
1009
|
data = _ref3.data,
|
|
997
1010
|
input = _ref3.input;
|
|
998
1011
|
return {
|
|
999
|
-
canceled: canceled,
|
|
1000
1012
|
status: status,
|
|
1001
1013
|
data: data,
|
|
1002
1014
|
input: input
|
|
@@ -1029,26 +1041,32 @@ function fromEventObservable(lazyObservable) {
|
|
|
1029
1041
|
|
|
1030
1042
|
// TODO: event types
|
|
1031
1043
|
var behavior = {
|
|
1044
|
+
config: lazyObservable,
|
|
1032
1045
|
transition: function transition(state, event) {
|
|
1033
|
-
|
|
1034
|
-
if (state.canceled) {
|
|
1046
|
+
if (state.status !== 'active') {
|
|
1035
1047
|
return state;
|
|
1036
1048
|
}
|
|
1037
|
-
switch (
|
|
1049
|
+
switch (event.type) {
|
|
1038
1050
|
case errorEventType:
|
|
1039
|
-
state
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1051
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
1052
|
+
status: 'error',
|
|
1053
|
+
input: undefined,
|
|
1054
|
+
data: event.data,
|
|
1055
|
+
subscription: undefined
|
|
1056
|
+
});
|
|
1043
1057
|
case completeEventType:
|
|
1044
|
-
state
|
|
1045
|
-
|
|
1046
|
-
|
|
1058
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
1059
|
+
status: 'done',
|
|
1060
|
+
input: undefined,
|
|
1061
|
+
subscription: undefined
|
|
1062
|
+
});
|
|
1047
1063
|
case stopSignalType:
|
|
1048
|
-
state.canceled = true;
|
|
1049
|
-
delete state.input;
|
|
1050
1064
|
state.subscription.unsubscribe();
|
|
1051
|
-
return state
|
|
1065
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
1066
|
+
status: 'canceled',
|
|
1067
|
+
input: undefined,
|
|
1068
|
+
subscription: undefined
|
|
1069
|
+
});
|
|
1052
1070
|
default:
|
|
1053
1071
|
return state;
|
|
1054
1072
|
}
|
|
@@ -1056,7 +1074,6 @@ function fromEventObservable(lazyObservable) {
|
|
|
1056
1074
|
getInitialState: function getInitialState() {
|
|
1057
1075
|
return {
|
|
1058
1076
|
subscription: undefined,
|
|
1059
|
-
canceled: false,
|
|
1060
1077
|
status: 'active',
|
|
1061
1078
|
data: undefined
|
|
1062
1079
|
};
|
|
@@ -1072,9 +1089,7 @@ function fromEventObservable(lazyObservable) {
|
|
|
1072
1089
|
}).subscribe({
|
|
1073
1090
|
next: function next(value) {
|
|
1074
1091
|
var _self$_parent2;
|
|
1075
|
-
(_self$_parent2 = self._parent) === null || _self$_parent2 === void 0 ? void 0 : _self$_parent2.send(
|
|
1076
|
-
origin: self
|
|
1077
|
-
}));
|
|
1092
|
+
(_self$_parent2 = self._parent) === null || _self$_parent2 === void 0 ? void 0 : _self$_parent2.send(value);
|
|
1078
1093
|
},
|
|
1079
1094
|
error: function error(err) {
|
|
1080
1095
|
self.send({
|
|
@@ -1093,12 +1108,10 @@ function fromEventObservable(lazyObservable) {
|
|
|
1093
1108
|
return undefined;
|
|
1094
1109
|
},
|
|
1095
1110
|
getPersistedState: function getPersistedState(_ref5) {
|
|
1096
|
-
var
|
|
1097
|
-
status = _ref5.status,
|
|
1111
|
+
var status = _ref5.status,
|
|
1098
1112
|
data = _ref5.data,
|
|
1099
1113
|
input = _ref5.input;
|
|
1100
1114
|
return {
|
|
1101
|
-
canceled: canceled,
|
|
1102
1115
|
status: status,
|
|
1103
1116
|
data: data,
|
|
1104
1117
|
input: input
|
|
@@ -1118,6 +1131,7 @@ function fromEventObservable(lazyObservable) {
|
|
|
1118
1131
|
|
|
1119
1132
|
function fromCallback(invokeCallback) {
|
|
1120
1133
|
var behavior = {
|
|
1134
|
+
config: invokeCallback,
|
|
1121
1135
|
start: function start(_state, _ref) {
|
|
1122
1136
|
var self = _ref.self;
|
|
1123
1137
|
self.send({
|
|
@@ -1127,16 +1141,13 @@ function fromCallback(invokeCallback) {
|
|
|
1127
1141
|
transition: function transition(state, event, _ref2) {
|
|
1128
1142
|
var self = _ref2.self,
|
|
1129
1143
|
id = _ref2.id;
|
|
1130
|
-
|
|
1131
|
-
if (_event.name === startSignalType) {
|
|
1144
|
+
if (event.type === startSignalType) {
|
|
1132
1145
|
var sender = function sender(eventForParent) {
|
|
1133
1146
|
var _self$_parent;
|
|
1134
1147
|
if (state.canceled) {
|
|
1135
|
-
return
|
|
1148
|
+
return;
|
|
1136
1149
|
}
|
|
1137
|
-
(_self$_parent = self._parent) === null || _self$_parent === void 0 ? void 0 : _self$_parent.send(
|
|
1138
|
-
origin: self
|
|
1139
|
-
}));
|
|
1150
|
+
(_self$_parent = self._parent) === null || _self$_parent === void 0 ? void 0 : _self$_parent.send(eventForParent);
|
|
1140
1151
|
};
|
|
1141
1152
|
var receiver = function receiver(newListener) {
|
|
1142
1153
|
state.receivers.add(newListener);
|
|
@@ -1147,36 +1158,30 @@ function fromCallback(invokeCallback) {
|
|
|
1147
1158
|
if (isPromiseLike(state.dispose)) {
|
|
1148
1159
|
state.dispose.then(function (resolved) {
|
|
1149
1160
|
var _self$_parent2;
|
|
1150
|
-
(_self$_parent2 = self._parent) === null || _self$_parent2 === void 0 ? void 0 : _self$_parent2.send(
|
|
1151
|
-
origin: self
|
|
1152
|
-
}));
|
|
1161
|
+
(_self$_parent2 = self._parent) === null || _self$_parent2 === void 0 ? void 0 : _self$_parent2.send(doneInvoke(id, resolved));
|
|
1153
1162
|
state.canceled = true;
|
|
1154
1163
|
}, function (errorData) {
|
|
1155
1164
|
var _self$_parent3;
|
|
1156
|
-
var errorEvent = error$1(id, errorData);
|
|
1157
|
-
(_self$_parent3 = self._parent) === null || _self$_parent3 === void 0 ? void 0 : _self$_parent3.send(toSCXMLEvent(errorEvent, {
|
|
1158
|
-
origin: self
|
|
1159
|
-
}));
|
|
1160
1165
|
state.canceled = true;
|
|
1166
|
+
(_self$_parent3 = self._parent) === null || _self$_parent3 === void 0 ? void 0 : _self$_parent3.send(error(id, errorData));
|
|
1161
1167
|
});
|
|
1162
1168
|
}
|
|
1163
1169
|
return state;
|
|
1164
1170
|
}
|
|
1165
|
-
if (
|
|
1171
|
+
if (event.type === stopSignalType) {
|
|
1166
1172
|
state.canceled = true;
|
|
1167
1173
|
if (isFunction(state.dispose)) {
|
|
1168
1174
|
state.dispose();
|
|
1169
1175
|
}
|
|
1170
1176
|
return state;
|
|
1171
1177
|
}
|
|
1172
|
-
if (isSignal(
|
|
1178
|
+
if (isSignal(event.type)) {
|
|
1173
1179
|
// TODO: unrecognized signal
|
|
1174
1180
|
return state;
|
|
1175
1181
|
}
|
|
1176
|
-
|
|
1177
|
-
if (!isSignal(plainEvent.type)) {
|
|
1182
|
+
if (!isSignal(event.type)) {
|
|
1178
1183
|
state.receivers.forEach(function (receiver) {
|
|
1179
|
-
return receiver(
|
|
1184
|
+
return receiver(event);
|
|
1180
1185
|
});
|
|
1181
1186
|
}
|
|
1182
1187
|
return state;
|
|
@@ -1247,6 +1252,12 @@ function toActorRef(actorRefLike) {
|
|
|
1247
1252
|
return void 0;
|
|
1248
1253
|
}), _objectSpread2$1), actorRefLike);
|
|
1249
1254
|
}
|
|
1255
|
+
var emptyBehavior = fromTransition(function (_) {
|
|
1256
|
+
return undefined;
|
|
1257
|
+
}, undefined);
|
|
1258
|
+
function createEmptyActor() {
|
|
1259
|
+
return interpret(emptyBehavior);
|
|
1260
|
+
}
|
|
1250
1261
|
|
|
1251
1262
|
function createSystem() {
|
|
1252
1263
|
var sessionIdCounter = 0;
|
|
@@ -1284,6 +1295,7 @@ function createSystem() {
|
|
|
1284
1295
|
return system;
|
|
1285
1296
|
}
|
|
1286
1297
|
|
|
1298
|
+
exports.ActorStatus = void 0;
|
|
1287
1299
|
(function (ActorStatus) {
|
|
1288
1300
|
ActorStatus[ActorStatus["NotStarted"] = 0] = "NotStarted";
|
|
1289
1301
|
ActorStatus[ActorStatus["Running"] = 1] = "Running";
|
|
@@ -1439,9 +1451,9 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1439
1451
|
_step;
|
|
1440
1452
|
try {
|
|
1441
1453
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1442
|
-
var
|
|
1443
|
-
var
|
|
1444
|
-
(
|
|
1454
|
+
var _observer$next;
|
|
1455
|
+
var _observer = _step.value;
|
|
1456
|
+
(_observer$next = _observer.next) === null || _observer$next === void 0 ? void 0 : _observer$next.call(_observer, snapshot);
|
|
1445
1457
|
}
|
|
1446
1458
|
} catch (err) {
|
|
1447
1459
|
_iterator.e(err);
|
|
@@ -1451,30 +1463,15 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1451
1463
|
var status = (_this$behavior$getSta = (_this$behavior = this.behavior).getStatus) === null || _this$behavior$getSta === void 0 ? void 0 : _this$behavior$getSta.call(_this$behavior, state);
|
|
1452
1464
|
switch (status === null || status === void 0 ? void 0 : status.status) {
|
|
1453
1465
|
case 'done':
|
|
1454
|
-
this._doneEvent = doneInvoke(this.id, status.data);
|
|
1455
|
-
(_this$_parent = this._parent) === null || _this$_parent === void 0 ? void 0 : _this$_parent.send(toSCXMLEvent(this._doneEvent, {
|
|
1456
|
-
origin: this,
|
|
1457
|
-
invokeid: this.id
|
|
1458
|
-
}));
|
|
1459
1466
|
this._stopProcedure();
|
|
1467
|
+
this._doneEvent = doneInvoke(this.id, status.data);
|
|
1468
|
+
(_this$_parent = this._parent) === null || _this$_parent === void 0 ? void 0 : _this$_parent.send(this._doneEvent);
|
|
1469
|
+
this._complete();
|
|
1460
1470
|
break;
|
|
1461
1471
|
case 'error':
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
var _iterator2 = _createForOfIteratorHelper(this.observers),
|
|
1466
|
-
_step2;
|
|
1467
|
-
try {
|
|
1468
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
1469
|
-
var _observer$error;
|
|
1470
|
-
var _observer = _step2.value;
|
|
1471
|
-
(_observer$error = _observer.error) === null || _observer$error === void 0 ? void 0 : _observer$error.call(_observer, status.data);
|
|
1472
|
-
}
|
|
1473
|
-
} catch (err) {
|
|
1474
|
-
_iterator2.e(err);
|
|
1475
|
-
} finally {
|
|
1476
|
-
_iterator2.f();
|
|
1477
|
-
}
|
|
1472
|
+
this._stopProcedure();
|
|
1473
|
+
(_this$_parent2 = this._parent) === null || _this$_parent2 === void 0 ? void 0 : _this$_parent2.send(error(this.id, status.data));
|
|
1474
|
+
this._error(status.data);
|
|
1478
1475
|
break;
|
|
1479
1476
|
}
|
|
1480
1477
|
}
|
|
@@ -1553,15 +1550,16 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1553
1550
|
try {
|
|
1554
1551
|
var nextState = this.behavior.transition(this._state, event, this._actorContext);
|
|
1555
1552
|
this.update(nextState);
|
|
1556
|
-
if (event.
|
|
1553
|
+
if (event.type === stopSignalType) {
|
|
1557
1554
|
this._stopProcedure();
|
|
1555
|
+
this._complete();
|
|
1558
1556
|
}
|
|
1559
1557
|
} catch (err) {
|
|
1560
1558
|
// TODO: properly handle errors
|
|
1561
1559
|
if (this.observers.size > 0) {
|
|
1562
1560
|
this.observers.forEach(function (observer) {
|
|
1563
|
-
var _observer$
|
|
1564
|
-
(_observer$
|
|
1561
|
+
var _observer$error;
|
|
1562
|
+
(_observer$error = observer.error) === null || _observer$error === void 0 ? void 0 : _observer$error.call(observer, err);
|
|
1565
1563
|
});
|
|
1566
1564
|
this.stop();
|
|
1567
1565
|
} else {
|
|
@@ -1580,9 +1578,9 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1580
1578
|
this.status = exports.ActorStatus.Stopped;
|
|
1581
1579
|
return this;
|
|
1582
1580
|
}
|
|
1583
|
-
this.mailbox.enqueue(
|
|
1581
|
+
this.mailbox.enqueue({
|
|
1584
1582
|
type: stopSignalType
|
|
1585
|
-
})
|
|
1583
|
+
});
|
|
1586
1584
|
return this;
|
|
1587
1585
|
}
|
|
1588
1586
|
|
|
@@ -1600,13 +1598,31 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1600
1598
|
}, {
|
|
1601
1599
|
key: "_complete",
|
|
1602
1600
|
value: function _complete() {
|
|
1601
|
+
var _iterator2 = _createForOfIteratorHelper(this.observers),
|
|
1602
|
+
_step2;
|
|
1603
|
+
try {
|
|
1604
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
1605
|
+
var _observer2$complete;
|
|
1606
|
+
var _observer2 = _step2.value;
|
|
1607
|
+
(_observer2$complete = _observer2.complete) === null || _observer2$complete === void 0 ? void 0 : _observer2$complete.call(_observer2);
|
|
1608
|
+
}
|
|
1609
|
+
} catch (err) {
|
|
1610
|
+
_iterator2.e(err);
|
|
1611
|
+
} finally {
|
|
1612
|
+
_iterator2.f();
|
|
1613
|
+
}
|
|
1614
|
+
this.observers.clear();
|
|
1615
|
+
}
|
|
1616
|
+
}, {
|
|
1617
|
+
key: "_error",
|
|
1618
|
+
value: function _error(data) {
|
|
1603
1619
|
var _iterator3 = _createForOfIteratorHelper(this.observers),
|
|
1604
1620
|
_step3;
|
|
1605
1621
|
try {
|
|
1606
1622
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
1607
|
-
var _observer3$
|
|
1623
|
+
var _observer3$error;
|
|
1608
1624
|
var _observer3 = _step3.value;
|
|
1609
|
-
(_observer3$
|
|
1625
|
+
(_observer3$error = _observer3.error) === null || _observer3$error === void 0 ? void 0 : _observer3$error.call(_observer3, data);
|
|
1610
1626
|
}
|
|
1611
1627
|
} catch (err) {
|
|
1612
1628
|
_iterator3.e(err);
|
|
@@ -1618,7 +1634,6 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1618
1634
|
}, {
|
|
1619
1635
|
key: "_stopProcedure",
|
|
1620
1636
|
value: function _stopProcedure() {
|
|
1621
|
-
this._complete();
|
|
1622
1637
|
if (this.status !== exports.ActorStatus.Running) {
|
|
1623
1638
|
// Interpreter already stopped; do nothing
|
|
1624
1639
|
return this;
|
|
@@ -1650,21 +1665,23 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1650
1665
|
}, {
|
|
1651
1666
|
key: "send",
|
|
1652
1667
|
value: function send(event) {
|
|
1653
|
-
|
|
1668
|
+
if (typeof event === 'string') {
|
|
1669
|
+
throw new Error("Only event objects may be sent to actors; use .send({ type: \"".concat(event, "\" }) instead"));
|
|
1670
|
+
}
|
|
1654
1671
|
if (this.status === exports.ActorStatus.Stopped) {
|
|
1655
1672
|
// do nothing
|
|
1656
1673
|
if (!dev_dist_xstateDev.IS_PRODUCTION) {
|
|
1657
|
-
var eventString = JSON.stringify(
|
|
1658
|
-
warn(false, "Event \"".concat(
|
|
1674
|
+
var eventString = JSON.stringify(event);
|
|
1675
|
+
warn(false, "Event \"".concat(event.type.toString(), "\" was sent to stopped actor \"").concat(this.id, " (").concat(this.sessionId, ")\". This actor has already reached its final state, and will not transition.\nEvent: ").concat(eventString));
|
|
1659
1676
|
}
|
|
1660
1677
|
return;
|
|
1661
1678
|
}
|
|
1662
1679
|
if (this.status !== exports.ActorStatus.Running && !this.options.deferEvents) {
|
|
1663
|
-
throw new Error("Event \"".concat(
|
|
1680
|
+
throw new Error("Event \"".concat(event.type, "\" was sent to uninitialized actor \"").concat(this.id
|
|
1664
1681
|
// tslint:disable-next-line:max-line-length
|
|
1665
|
-
, "\". Make sure .start() is called for this actor, or set { deferEvents: true } in the actor options.\nEvent: ").concat(JSON.stringify(
|
|
1682
|
+
, "\". Make sure .start() is called for this actor, or set { deferEvents: true } in the actor options.\nEvent: ").concat(JSON.stringify(event)));
|
|
1666
1683
|
}
|
|
1667
|
-
this.mailbox.enqueue(
|
|
1684
|
+
this.mailbox.enqueue(event);
|
|
1668
1685
|
}
|
|
1669
1686
|
|
|
1670
1687
|
// TODO: make private (and figure out a way to do this within the machine)
|
|
@@ -1674,9 +1691,9 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1674
1691
|
var _this4 = this;
|
|
1675
1692
|
this.delayedEventsMap[sendAction.params.id] = this.clock.setTimeout(function () {
|
|
1676
1693
|
if ('to' in sendAction.params && sendAction.params.to) {
|
|
1677
|
-
sendAction.params.to.send(sendAction.params.
|
|
1694
|
+
sendAction.params.to.send(sendAction.params.event);
|
|
1678
1695
|
} else {
|
|
1679
|
-
_this4.send(sendAction.params.
|
|
1696
|
+
_this4.send(sendAction.params.event);
|
|
1680
1697
|
}
|
|
1681
1698
|
}, sendAction.params.delay);
|
|
1682
1699
|
}
|
|
@@ -1742,18 +1759,18 @@ function interpret(behavior, options) {
|
|
|
1742
1759
|
* @param actorRef The actor to stop.
|
|
1743
1760
|
*/
|
|
1744
1761
|
|
|
1745
|
-
function stop
|
|
1762
|
+
function stop(actorRef) {
|
|
1746
1763
|
var actor = actorRef;
|
|
1747
1764
|
return createDynamicAction({
|
|
1748
|
-
type: stop,
|
|
1765
|
+
type: stop$1,
|
|
1749
1766
|
params: {
|
|
1750
1767
|
actor: actor
|
|
1751
1768
|
}
|
|
1752
|
-
}, function (
|
|
1769
|
+
}, function (event, _ref) {
|
|
1753
1770
|
var state = _ref.state;
|
|
1754
1771
|
var actorRefOrString = isFunction(actor) ? actor({
|
|
1755
1772
|
context: state.context,
|
|
1756
|
-
event:
|
|
1773
|
+
event: event
|
|
1757
1774
|
}) : actor;
|
|
1758
1775
|
var actorRef = typeof actorRefOrString === 'string' ? state.children[actorRefOrString] : actorRefOrString;
|
|
1759
1776
|
return [state, {
|
|
@@ -1795,23 +1812,22 @@ var defaultLogExpr = function defaultLogExpr(_ref) {
|
|
|
1795
1812
|
* @param label The label to give to the logged expression.
|
|
1796
1813
|
*/
|
|
1797
1814
|
|
|
1798
|
-
function log
|
|
1815
|
+
function log() {
|
|
1799
1816
|
var expr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultLogExpr;
|
|
1800
1817
|
var label = arguments.length > 1 ? arguments[1] : undefined;
|
|
1801
1818
|
return createDynamicAction({
|
|
1802
|
-
type: log,
|
|
1819
|
+
type: log$1,
|
|
1803
1820
|
params: {
|
|
1804
1821
|
label: label,
|
|
1805
1822
|
expr: expr
|
|
1806
1823
|
}
|
|
1807
|
-
}, function (
|
|
1824
|
+
}, function (event, _ref2) {
|
|
1808
1825
|
var _actorContext$self;
|
|
1809
1826
|
var state = _ref2.state,
|
|
1810
1827
|
actorContext = _ref2.actorContext;
|
|
1811
1828
|
var resolvedValue = typeof expr === 'function' ? expr({
|
|
1812
1829
|
context: state.context,
|
|
1813
|
-
event:
|
|
1814
|
-
_event: _event,
|
|
1830
|
+
event: event,
|
|
1815
1831
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : {},
|
|
1816
1832
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
1817
1833
|
}) : expr;
|
|
@@ -1842,20 +1858,19 @@ function log$1() {
|
|
|
1842
1858
|
* @param sendId The `id` of the `send(...)` action to cancel.
|
|
1843
1859
|
*/
|
|
1844
1860
|
|
|
1845
|
-
function cancel
|
|
1861
|
+
function cancel(sendId) {
|
|
1846
1862
|
return createDynamicAction({
|
|
1847
|
-
type: cancel,
|
|
1863
|
+
type: cancel$1,
|
|
1848
1864
|
params: {
|
|
1849
1865
|
sendId: sendId
|
|
1850
1866
|
}
|
|
1851
|
-
}, function (
|
|
1867
|
+
}, function (event, _ref) {
|
|
1852
1868
|
var _actorContext$self;
|
|
1853
1869
|
var state = _ref.state,
|
|
1854
1870
|
actorContext = _ref.actorContext;
|
|
1855
1871
|
var resolvedSendId = isFunction(sendId) ? sendId({
|
|
1856
1872
|
context: state.context,
|
|
1857
|
-
event:
|
|
1858
|
-
_event: _event,
|
|
1873
|
+
event: event,
|
|
1859
1874
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : {},
|
|
1860
1875
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
1861
1876
|
}) : sendId;
|
|
@@ -1941,9 +1956,9 @@ function not(guard) {
|
|
|
1941
1956
|
var evaluate = _ref2.evaluate,
|
|
1942
1957
|
guard = _ref2.guard,
|
|
1943
1958
|
context = _ref2.context,
|
|
1944
|
-
|
|
1959
|
+
event = _ref2.event,
|
|
1945
1960
|
state = _ref2.state;
|
|
1946
|
-
return !evaluate(guard.children[0], context,
|
|
1961
|
+
return !evaluate(guard.children[0], context, event, state);
|
|
1947
1962
|
}
|
|
1948
1963
|
};
|
|
1949
1964
|
}
|
|
@@ -1960,10 +1975,10 @@ function and(guards) {
|
|
|
1960
1975
|
var evaluate = _ref3.evaluate,
|
|
1961
1976
|
guard = _ref3.guard,
|
|
1962
1977
|
context = _ref3.context,
|
|
1963
|
-
|
|
1978
|
+
event = _ref3.event,
|
|
1964
1979
|
state = _ref3.state;
|
|
1965
1980
|
return guard.children.every(function (childGuard) {
|
|
1966
|
-
return evaluate(childGuard, context,
|
|
1981
|
+
return evaluate(childGuard, context, event, state);
|
|
1967
1982
|
});
|
|
1968
1983
|
}
|
|
1969
1984
|
};
|
|
@@ -1981,15 +1996,15 @@ function or(guards) {
|
|
|
1981
1996
|
var evaluate = _ref4.evaluate,
|
|
1982
1997
|
guard = _ref4.guard,
|
|
1983
1998
|
context = _ref4.context,
|
|
1984
|
-
|
|
1999
|
+
event = _ref4.event,
|
|
1985
2000
|
state = _ref4.state;
|
|
1986
2001
|
return guard.children.some(function (childGuard) {
|
|
1987
|
-
return evaluate(childGuard, context,
|
|
2002
|
+
return evaluate(childGuard, context, event, state);
|
|
1988
2003
|
});
|
|
1989
2004
|
}
|
|
1990
2005
|
};
|
|
1991
2006
|
}
|
|
1992
|
-
function evaluateGuard(guard, context,
|
|
2007
|
+
function evaluateGuard(guard, context, event, state) {
|
|
1993
2008
|
var _machine$options$guar, _machine$options, _machine$options$guar2;
|
|
1994
2009
|
var machine = state.machine;
|
|
1995
2010
|
var predicate = (_machine$options$guar = machine === null || machine === void 0 ? void 0 : (_machine$options = machine.options) === null || _machine$options === void 0 ? void 0 : (_machine$options$guar2 = _machine$options.guards) === null || _machine$options$guar2 === void 0 ? void 0 : _machine$options$guar2[guard.type]) !== null && _machine$options$guar !== void 0 ? _machine$options$guar : guard.predicate;
|
|
@@ -1998,10 +2013,9 @@ function evaluateGuard(guard, context, _event, state) {
|
|
|
1998
2013
|
}
|
|
1999
2014
|
return predicate({
|
|
2000
2015
|
context: context,
|
|
2001
|
-
event:
|
|
2016
|
+
event: event,
|
|
2002
2017
|
state: state,
|
|
2003
2018
|
guard: guard,
|
|
2004
|
-
_event: _event,
|
|
2005
2019
|
evaluate: evaluateGuard
|
|
2006
2020
|
});
|
|
2007
2021
|
}
|
|
@@ -2036,12 +2050,12 @@ function toGuardDefinition(guardConfig, getPredicate) {
|
|
|
2036
2050
|
};
|
|
2037
2051
|
}
|
|
2038
2052
|
|
|
2039
|
-
function getOutput(configuration, context,
|
|
2053
|
+
function getOutput(configuration, context, event) {
|
|
2040
2054
|
var machine = configuration[0].machine;
|
|
2041
2055
|
var finalChildStateNode = configuration.find(function (stateNode) {
|
|
2042
2056
|
return stateNode.type === 'final' && stateNode.parent === machine.root;
|
|
2043
2057
|
});
|
|
2044
|
-
return finalChildStateNode && finalChildStateNode.output ? mapContext(finalChildStateNode.output, context,
|
|
2058
|
+
return finalChildStateNode && finalChildStateNode.output ? mapContext(finalChildStateNode.output, context, event) : undefined;
|
|
2045
2059
|
}
|
|
2046
2060
|
var isAtomicStateNode = function isAtomicStateNode(stateNode) {
|
|
2047
2061
|
return stateNode.type === 'atomic' || stateNode.type === 'final';
|
|
@@ -2205,7 +2219,6 @@ var isStateId = function isStateId(str) {
|
|
|
2205
2219
|
return str[0] === STATE_IDENTIFIER;
|
|
2206
2220
|
};
|
|
2207
2221
|
function getCandidates(stateNode, receivedEventType) {
|
|
2208
|
-
var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
2209
2222
|
var candidates = stateNode.transitions.filter(function (transition) {
|
|
2210
2223
|
var eventType = transition.eventType;
|
|
2211
2224
|
// First, check the trivial case: event names are exactly equal
|
|
@@ -2218,7 +2231,7 @@ function getCandidates(stateNode, receivedEventType) {
|
|
|
2218
2231
|
if (eventType === WILDCARD) {
|
|
2219
2232
|
return true;
|
|
2220
2233
|
}
|
|
2221
|
-
if (!
|
|
2234
|
+
if (!eventType.endsWith('.*')) {
|
|
2222
2235
|
return false;
|
|
2223
2236
|
}
|
|
2224
2237
|
if (!dev_dist_xstateDev.IS_PRODUCTION) {
|
|
@@ -2255,13 +2268,13 @@ function getDelayedTransitions(stateNode) {
|
|
|
2255
2268
|
}
|
|
2256
2269
|
var mutateEntryExit = function mutateEntryExit(delay, i) {
|
|
2257
2270
|
var delayRef = isFunction(delay) ? "".concat(stateNode.id, ":delay[").concat(i, "]") : delay;
|
|
2258
|
-
var eventType = after
|
|
2259
|
-
stateNode.entry.push(
|
|
2271
|
+
var eventType = after(delayRef, stateNode.id);
|
|
2272
|
+
stateNode.entry.push(raise({
|
|
2260
2273
|
type: eventType
|
|
2261
2274
|
}, {
|
|
2262
2275
|
delay: delay
|
|
2263
2276
|
}));
|
|
2264
|
-
stateNode.exit.push(cancel
|
|
2277
|
+
stateNode.exit.push(cancel(eventType));
|
|
2265
2278
|
return eventType;
|
|
2266
2279
|
};
|
|
2267
2280
|
var delayedTransitions = isArray(afterConfig) ? afterConfig.map(function (transition, i) {
|
|
@@ -2291,9 +2304,9 @@ function getDelayedTransitions(stateNode) {
|
|
|
2291
2304
|
});
|
|
2292
2305
|
}
|
|
2293
2306
|
function formatTransition(stateNode, transitionConfig) {
|
|
2294
|
-
var _transitionConfig$
|
|
2307
|
+
var _transitionConfig$ree;
|
|
2295
2308
|
var normalizedTarget = normalizeTarget(transitionConfig.target);
|
|
2296
|
-
var
|
|
2309
|
+
var reenter = (_transitionConfig$ree = transitionConfig.reenter) !== null && _transitionConfig$ree !== void 0 ? _transitionConfig$ree : false;
|
|
2297
2310
|
var guards = stateNode.machine.options.guards;
|
|
2298
2311
|
var target = resolveTarget(stateNode, normalizedTarget);
|
|
2299
2312
|
|
|
@@ -2308,7 +2321,7 @@ function formatTransition(stateNode, transitionConfig) {
|
|
|
2308
2321
|
}) : undefined,
|
|
2309
2322
|
target: target,
|
|
2310
2323
|
source: stateNode,
|
|
2311
|
-
|
|
2324
|
+
reenter: reenter,
|
|
2312
2325
|
eventType: transitionConfig.event,
|
|
2313
2326
|
toJSON: function toJSON() {
|
|
2314
2327
|
return _objectSpread2(_objectSpread2({}, transition), {}, {
|
|
@@ -2395,7 +2408,7 @@ function formatInitialTransition(stateNode, _target) {
|
|
|
2395
2408
|
source: stateNode,
|
|
2396
2409
|
actions: [],
|
|
2397
2410
|
eventType: null,
|
|
2398
|
-
|
|
2411
|
+
reenter: false,
|
|
2399
2412
|
target: resolvedTarget,
|
|
2400
2413
|
toJSON: function toJSON() {
|
|
2401
2414
|
return _objectSpread2(_objectSpread2({}, transition), {}, {
|
|
@@ -2578,24 +2591,24 @@ function getStateNodes(stateNode, state) {
|
|
|
2578
2591
|
return allSubStateNodes.concat(subStateNodes);
|
|
2579
2592
|
}, []));
|
|
2580
2593
|
}
|
|
2581
|
-
function transitionAtomicNode(stateNode, stateValue, state,
|
|
2594
|
+
function transitionAtomicNode(stateNode, stateValue, state, event) {
|
|
2582
2595
|
var childStateNode = getStateNode(stateNode, stateValue);
|
|
2583
|
-
var next = childStateNode.next(state,
|
|
2596
|
+
var next = childStateNode.next(state, event);
|
|
2584
2597
|
if (!next || !next.length) {
|
|
2585
|
-
return stateNode.next(state,
|
|
2598
|
+
return stateNode.next(state, event);
|
|
2586
2599
|
}
|
|
2587
2600
|
return next;
|
|
2588
2601
|
}
|
|
2589
|
-
function transitionCompoundNode(stateNode, stateValue, state,
|
|
2602
|
+
function transitionCompoundNode(stateNode, stateValue, state, event) {
|
|
2590
2603
|
var subStateKeys = Object.keys(stateValue);
|
|
2591
2604
|
var childStateNode = getStateNode(stateNode, subStateKeys[0]);
|
|
2592
|
-
var next = transitionNode(childStateNode, stateValue[subStateKeys[0]], state,
|
|
2605
|
+
var next = transitionNode(childStateNode, stateValue[subStateKeys[0]], state, event);
|
|
2593
2606
|
if (!next || !next.length) {
|
|
2594
|
-
return stateNode.next(state,
|
|
2607
|
+
return stateNode.next(state, event);
|
|
2595
2608
|
}
|
|
2596
2609
|
return next;
|
|
2597
2610
|
}
|
|
2598
|
-
function transitionParallelNode(stateNode, stateValue, state,
|
|
2611
|
+
function transitionParallelNode(stateNode, stateValue, state, event) {
|
|
2599
2612
|
var allInnerTransitions = [];
|
|
2600
2613
|
for (var _i3 = 0, _Object$keys2 = Object.keys(stateValue); _i3 < _Object$keys2.length; _i3++) {
|
|
2601
2614
|
var subStateKey = _Object$keys2[_i3];
|
|
@@ -2604,29 +2617,29 @@ function transitionParallelNode(stateNode, stateValue, state, _event) {
|
|
|
2604
2617
|
continue;
|
|
2605
2618
|
}
|
|
2606
2619
|
var subStateNode = getStateNode(stateNode, subStateKey);
|
|
2607
|
-
var innerTransitions = transitionNode(subStateNode, subStateValue, state,
|
|
2620
|
+
var innerTransitions = transitionNode(subStateNode, subStateValue, state, event);
|
|
2608
2621
|
if (innerTransitions) {
|
|
2609
2622
|
allInnerTransitions.push.apply(allInnerTransitions, _toConsumableArray(innerTransitions));
|
|
2610
2623
|
}
|
|
2611
2624
|
}
|
|
2612
2625
|
if (!allInnerTransitions.length) {
|
|
2613
|
-
return stateNode.next(state,
|
|
2626
|
+
return stateNode.next(state, event);
|
|
2614
2627
|
}
|
|
2615
2628
|
return allInnerTransitions;
|
|
2616
2629
|
}
|
|
2617
|
-
function transitionNode(stateNode, stateValue, state,
|
|
2630
|
+
function transitionNode(stateNode, stateValue, state, event) {
|
|
2618
2631
|
// leaf node
|
|
2619
2632
|
if (isString(stateValue)) {
|
|
2620
|
-
return transitionAtomicNode(stateNode, stateValue, state,
|
|
2633
|
+
return transitionAtomicNode(stateNode, stateValue, state, event);
|
|
2621
2634
|
}
|
|
2622
2635
|
|
|
2623
2636
|
// compound node
|
|
2624
2637
|
if (Object.keys(stateValue).length === 1) {
|
|
2625
|
-
return transitionCompoundNode(stateNode, stateValue, state,
|
|
2638
|
+
return transitionCompoundNode(stateNode, stateValue, state, event);
|
|
2626
2639
|
}
|
|
2627
2640
|
|
|
2628
2641
|
// parallel node
|
|
2629
|
-
return transitionParallelNode(stateNode, stateValue, state,
|
|
2642
|
+
return transitionParallelNode(stateNode, stateValue, state, event);
|
|
2630
2643
|
}
|
|
2631
2644
|
function getHistoryNodes(stateNode) {
|
|
2632
2645
|
return Object.keys(stateNode.states).map(function (key) {
|
|
@@ -2818,7 +2831,7 @@ function getTransitionDomain(transition, historyValue) {
|
|
|
2818
2831
|
if (!targetStates) {
|
|
2819
2832
|
return null;
|
|
2820
2833
|
}
|
|
2821
|
-
if (!transition.
|
|
2834
|
+
if (!transition.reenter && transition.source.type !== 'parallel' && targetStates.every(function (targetStateNode) {
|
|
2822
2835
|
return isDescendant(targetStateNode, transition.source);
|
|
2823
2836
|
})) {
|
|
2824
2837
|
return transition.source;
|
|
@@ -2869,7 +2882,7 @@ function computeExitSet(transitions, configuration, historyValue) {
|
|
|
2869
2882
|
* @param mutConfiguration
|
|
2870
2883
|
*/
|
|
2871
2884
|
|
|
2872
|
-
function microstep(transitions, currentState, actorCtx,
|
|
2885
|
+
function microstep(transitions, currentState, actorCtx, event) {
|
|
2873
2886
|
var machine = currentState.machine;
|
|
2874
2887
|
// Transition will "apply" if:
|
|
2875
2888
|
// - the state node is the initial state (there is no current state)
|
|
@@ -2878,7 +2891,7 @@ function microstep(transitions, currentState, actorCtx, scxmlEvent) {
|
|
|
2878
2891
|
var mutConfiguration = new Set(currentState.configuration);
|
|
2879
2892
|
if (!currentState._initial && !willTransition) {
|
|
2880
2893
|
var inertState = cloneState(currentState, {
|
|
2881
|
-
|
|
2894
|
+
event: event,
|
|
2882
2895
|
actions: [],
|
|
2883
2896
|
transitions: []
|
|
2884
2897
|
});
|
|
@@ -2888,11 +2901,11 @@ function microstep(transitions, currentState, actorCtx, scxmlEvent) {
|
|
|
2888
2901
|
var microstate = microstepProcedure(currentState._initial ? [{
|
|
2889
2902
|
target: _toConsumableArray(currentState.configuration).filter(isAtomicStateNode),
|
|
2890
2903
|
source: machine.root,
|
|
2891
|
-
|
|
2904
|
+
reenter: true,
|
|
2892
2905
|
actions: [],
|
|
2893
2906
|
eventType: null,
|
|
2894
2907
|
toJSON: null // TODO: fix
|
|
2895
|
-
}] : transitions, currentState, mutConfiguration,
|
|
2908
|
+
}] : transitions, currentState, mutConfiguration, event, actorCtx);
|
|
2896
2909
|
var context = microstate.context,
|
|
2897
2910
|
nonRaisedActions = microstate.actions;
|
|
2898
2911
|
var children = setChildren(currentState, nonRaisedActions);
|
|
@@ -2912,12 +2925,12 @@ function setChildren(currentState, nonRaisedActions) {
|
|
|
2912
2925
|
try {
|
|
2913
2926
|
for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
|
|
2914
2927
|
var action = _step21.value;
|
|
2915
|
-
if (action.type === invoke && action.params.ref) {
|
|
2928
|
+
if (action.type === invoke$1 && action.params.ref) {
|
|
2916
2929
|
var ref = action.params.ref;
|
|
2917
2930
|
if (ref) {
|
|
2918
2931
|
children[ref.id] = ref;
|
|
2919
2932
|
}
|
|
2920
|
-
} else if (action.type === stop) {
|
|
2933
|
+
} else if (action.type === stop$1) {
|
|
2921
2934
|
var _ref = action.params.actor;
|
|
2922
2935
|
if (_ref) {
|
|
2923
2936
|
delete children[_ref.id];
|
|
@@ -2931,8 +2944,7 @@ function setChildren(currentState, nonRaisedActions) {
|
|
|
2931
2944
|
}
|
|
2932
2945
|
return children;
|
|
2933
2946
|
}
|
|
2934
|
-
function microstepProcedure(transitions, currentState, mutConfiguration,
|
|
2935
|
-
var machine = currentState.machine;
|
|
2947
|
+
function microstepProcedure(transitions, currentState, mutConfiguration, event, actorCtx) {
|
|
2936
2948
|
var actions = [];
|
|
2937
2949
|
var historyValue = _objectSpread2({}, currentState.historyValue);
|
|
2938
2950
|
var filteredTransitions = removeConflictingTransitions(transitions, mutConfiguration, historyValue);
|
|
@@ -2961,9 +2973,9 @@ function microstepProcedure(transitions, currentState, mutConfiguration, scxmlEv
|
|
|
2961
2973
|
actions.push.apply(actions, _toConsumableArray(finalActions));
|
|
2962
2974
|
}
|
|
2963
2975
|
try {
|
|
2964
|
-
var _resolveActionsAndCon = resolveActionsAndContext(actions,
|
|
2976
|
+
var _resolveActionsAndCon = resolveActionsAndContext(actions, event, currentState, actorCtx),
|
|
2965
2977
|
nextState = _resolveActionsAndCon.nextState;
|
|
2966
|
-
var output = done ? getOutput(nextConfiguration, nextState.context,
|
|
2978
|
+
var output = done ? getOutput(nextConfiguration, nextState.context, event) : undefined;
|
|
2967
2979
|
internalQueue.push.apply(internalQueue, _toConsumableArray(nextState._internalQueue));
|
|
2968
2980
|
return cloneState(currentState, {
|
|
2969
2981
|
actions: nextState.actions,
|
|
@@ -2971,7 +2983,7 @@ function microstepProcedure(transitions, currentState, mutConfiguration, scxmlEv
|
|
|
2971
2983
|
historyValue: historyValue,
|
|
2972
2984
|
_internalQueue: internalQueue,
|
|
2973
2985
|
context: nextState.context,
|
|
2974
|
-
|
|
2986
|
+
event: event,
|
|
2975
2987
|
done: done,
|
|
2976
2988
|
output: output,
|
|
2977
2989
|
children: nextState.children
|
|
@@ -2979,19 +2991,7 @@ function microstepProcedure(transitions, currentState, mutConfiguration, scxmlEv
|
|
|
2979
2991
|
} catch (e) {
|
|
2980
2992
|
// TODO: Refactor this once proper error handling is implemented.
|
|
2981
2993
|
// See https://github.com/statelyai/rfcs/pull/4
|
|
2982
|
-
|
|
2983
|
-
return cloneState(currentState, {
|
|
2984
|
-
actions: [],
|
|
2985
|
-
configuration: Array.from(mutConfiguration),
|
|
2986
|
-
historyValue: historyValue,
|
|
2987
|
-
_internalQueue: [toSCXMLEvent({
|
|
2988
|
-
type: 'error.execution'
|
|
2989
|
-
})],
|
|
2990
|
-
context: currentState.context
|
|
2991
|
-
});
|
|
2992
|
-
} else {
|
|
2993
|
-
throw e;
|
|
2994
|
-
}
|
|
2994
|
+
throw e;
|
|
2995
2995
|
}
|
|
2996
2996
|
}
|
|
2997
2997
|
function enterStates(filteredTransitions, mutConfiguration, actions, internalQueue, currentState, historyValue) {
|
|
@@ -3016,7 +3016,7 @@ function enterStates(filteredTransitions, mutConfiguration, actions, internalQue
|
|
|
3016
3016
|
try {
|
|
3017
3017
|
for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
|
|
3018
3018
|
var invokeDef = _step23.value;
|
|
3019
|
-
actions.push(invoke
|
|
3019
|
+
actions.push(invoke(invokeDef));
|
|
3020
3020
|
}
|
|
3021
3021
|
|
|
3022
3022
|
// Add entry actions
|
|
@@ -3046,14 +3046,14 @@ function enterStates(filteredTransitions, mutConfiguration, actions, internalQue
|
|
|
3046
3046
|
if (!parent.parent) {
|
|
3047
3047
|
continue;
|
|
3048
3048
|
}
|
|
3049
|
-
internalQueue.push(
|
|
3049
|
+
internalQueue.push(done(parent.id, stateNodeToEnter.output ? mapContext(stateNodeToEnter.output, currentState.context, currentState.event) : undefined));
|
|
3050
3050
|
if (parent.parent) {
|
|
3051
3051
|
var grandparent = parent.parent;
|
|
3052
3052
|
if (grandparent.type === 'parallel') {
|
|
3053
3053
|
if (getChildren(grandparent).every(function (parentNode) {
|
|
3054
3054
|
return isInFinalState(_toConsumableArray(mutConfiguration), parentNode);
|
|
3055
3055
|
})) {
|
|
3056
|
-
internalQueue.push(
|
|
3056
|
+
internalQueue.push(done(grandparent.id));
|
|
3057
3057
|
}
|
|
3058
3058
|
}
|
|
3059
3059
|
}
|
|
@@ -3326,7 +3326,7 @@ function exitStates(transitions, mutConfiguration, historyValue, actions) {
|
|
|
3326
3326
|
for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
|
|
3327
3327
|
var s = _step40.value;
|
|
3328
3328
|
actions.push.apply(actions, _toConsumableArray(s.exit.flat()).concat(_toConsumableArray(s.invoke.map(function (def) {
|
|
3329
|
-
return stop
|
|
3329
|
+
return stop(def.id);
|
|
3330
3330
|
}))));
|
|
3331
3331
|
mutConfiguration["delete"](s);
|
|
3332
3332
|
}
|
|
@@ -3336,7 +3336,7 @@ function exitStates(transitions, mutConfiguration, historyValue, actions) {
|
|
|
3336
3336
|
_iterator40.f();
|
|
3337
3337
|
}
|
|
3338
3338
|
}
|
|
3339
|
-
function resolveActionsAndContext(actions,
|
|
3339
|
+
function resolveActionsAndContext(actions, event, currentState, actorCtx) {
|
|
3340
3340
|
var machine = currentState.machine;
|
|
3341
3341
|
var resolvedActions = [];
|
|
3342
3342
|
var raiseActions = [];
|
|
@@ -3354,7 +3354,7 @@ function resolveActionsAndContext(actions, scxmlEvent, currentState, actorCtx) {
|
|
|
3354
3354
|
var executableActionObject = resolveActionObject(actionObject, machine.options.actions);
|
|
3355
3355
|
if (isDynamicAction(executableActionObject)) {
|
|
3356
3356
|
var _resolvedAction$param;
|
|
3357
|
-
var _executableActionObje = executableActionObject.resolve(
|
|
3357
|
+
var _executableActionObje = executableActionObject.resolve(event, {
|
|
3358
3358
|
state: intermediateState,
|
|
3359
3359
|
action: actionObject,
|
|
3360
3360
|
actorContext: actorCtx
|
|
@@ -3364,12 +3364,12 @@ function resolveActionsAndContext(actions, scxmlEvent, currentState, actorCtx) {
|
|
|
3364
3364
|
resolvedAction = _executableActionObje2[1];
|
|
3365
3365
|
var matchedActions = (_resolvedAction$param = resolvedAction.params) === null || _resolvedAction$param === void 0 ? void 0 : _resolvedAction$param.actions;
|
|
3366
3366
|
intermediateState = nextState;
|
|
3367
|
-
if ((resolvedAction.type === raise || resolvedAction.type === send && resolvedAction.params.internal) && typeof resolvedAction.params.delay !== 'number') {
|
|
3367
|
+
if ((resolvedAction.type === raise$1 || resolvedAction.type === send$1 && resolvedAction.params.internal) && typeof resolvedAction.params.delay !== 'number') {
|
|
3368
3368
|
raiseActions.push(resolvedAction);
|
|
3369
3369
|
}
|
|
3370
3370
|
|
|
3371
3371
|
// TODO: remove the check; just handleAction
|
|
3372
|
-
if (resolvedAction.type !== pure) {
|
|
3372
|
+
if (resolvedAction.type !== pure$1) {
|
|
3373
3373
|
handleAction(resolvedAction);
|
|
3374
3374
|
}
|
|
3375
3375
|
toActionObjects(matchedActions).forEach(resolveAction);
|
|
@@ -3393,21 +3393,21 @@ function resolveActionsAndContext(actions, scxmlEvent, currentState, actorCtx) {
|
|
|
3393
3393
|
nextState: cloneState(intermediateState, {
|
|
3394
3394
|
actions: resolvedActions,
|
|
3395
3395
|
_internalQueue: raiseActions.map(function (a) {
|
|
3396
|
-
return a.params.
|
|
3396
|
+
return a.params.event;
|
|
3397
3397
|
})
|
|
3398
3398
|
})
|
|
3399
3399
|
};
|
|
3400
3400
|
}
|
|
3401
|
-
function macrostep(state,
|
|
3402
|
-
if (!dev_dist_xstateDev.IS_PRODUCTION &&
|
|
3401
|
+
function macrostep(state, event, actorCtx) {
|
|
3402
|
+
if (!dev_dist_xstateDev.IS_PRODUCTION && event.type === WILDCARD) {
|
|
3403
3403
|
throw new Error("An event cannot have the wildcard type ('".concat(WILDCARD, "')"));
|
|
3404
3404
|
}
|
|
3405
3405
|
var nextState = state;
|
|
3406
3406
|
var states = [];
|
|
3407
3407
|
|
|
3408
3408
|
// Handle stop event
|
|
3409
|
-
if (
|
|
3410
|
-
nextState = stopStep(
|
|
3409
|
+
if (event.type === stopSignalType) {
|
|
3410
|
+
nextState = stopStep(event, nextState, actorCtx);
|
|
3411
3411
|
states.push(nextState);
|
|
3412
3412
|
return {
|
|
3413
3413
|
state: nextState,
|
|
@@ -3417,9 +3417,9 @@ function macrostep(state, scxmlEvent, actorCtx) {
|
|
|
3417
3417
|
|
|
3418
3418
|
// Assume the state is at rest (no raised events)
|
|
3419
3419
|
// Determine the next state based on the next microstep
|
|
3420
|
-
if (
|
|
3421
|
-
var transitions = selectTransitions(
|
|
3422
|
-
nextState = microstep(transitions, state, actorCtx,
|
|
3420
|
+
if (event.type !== init) {
|
|
3421
|
+
var transitions = selectTransitions(event, nextState);
|
|
3422
|
+
nextState = microstep(transitions, state, actorCtx, event);
|
|
3423
3423
|
states.push(nextState);
|
|
3424
3424
|
}
|
|
3425
3425
|
while (!nextState.done) {
|
|
@@ -3451,21 +3451,21 @@ function macrostep(state, scxmlEvent, actorCtx) {
|
|
|
3451
3451
|
if (enabledTransitions.length) {
|
|
3452
3452
|
var _nextState$actions2;
|
|
3453
3453
|
var _currentActions = nextState.actions;
|
|
3454
|
-
nextState = microstep(enabledTransitions, nextState, actorCtx, nextState.
|
|
3454
|
+
nextState = microstep(enabledTransitions, nextState, actorCtx, nextState.event);
|
|
3455
3455
|
(_nextState$actions2 = nextState.actions).unshift.apply(_nextState$actions2, _toConsumableArray(_currentActions));
|
|
3456
3456
|
states.push(nextState);
|
|
3457
3457
|
}
|
|
3458
3458
|
}
|
|
3459
3459
|
if (nextState.done) {
|
|
3460
3460
|
// Perform the stop step to ensure that child actors are stopped
|
|
3461
|
-
stopStep(nextState.
|
|
3461
|
+
stopStep(nextState.event, nextState, actorCtx);
|
|
3462
3462
|
}
|
|
3463
3463
|
return {
|
|
3464
3464
|
state: nextState,
|
|
3465
3465
|
microstates: states
|
|
3466
3466
|
};
|
|
3467
3467
|
}
|
|
3468
|
-
function stopStep(
|
|
3468
|
+
function stopStep(event, nextState, actorCtx) {
|
|
3469
3469
|
var actions = [];
|
|
3470
3470
|
var _iterator43 = _createForOfIteratorHelper(nextState.configuration.sort(function (a, b) {
|
|
3471
3471
|
return b.order - a.order;
|
|
@@ -3483,14 +3483,14 @@ function stopStep(scxmlEvent, nextState, actorCtx) {
|
|
|
3483
3483
|
}
|
|
3484
3484
|
for (var _i4 = 0, _Object$values = Object.values(nextState.children); _i4 < _Object$values.length; _i4++) {
|
|
3485
3485
|
var child = _Object$values[_i4];
|
|
3486
|
-
actions.push(stop
|
|
3486
|
+
actions.push(stop(child));
|
|
3487
3487
|
}
|
|
3488
|
-
var _resolveActionsAndCon2 = resolveActionsAndContext(actions,
|
|
3488
|
+
var _resolveActionsAndCon2 = resolveActionsAndContext(actions, event, nextState, actorCtx),
|
|
3489
3489
|
stoppedState = _resolveActionsAndCon2.nextState;
|
|
3490
3490
|
return stoppedState;
|
|
3491
3491
|
}
|
|
3492
|
-
function selectTransitions(
|
|
3493
|
-
return nextState.machine.getTransitionData(nextState,
|
|
3492
|
+
function selectTransitions(event, nextState) {
|
|
3493
|
+
return nextState.machine.getTransitionData(nextState, event);
|
|
3494
3494
|
}
|
|
3495
3495
|
function selectEventlessTransitions(nextState) {
|
|
3496
3496
|
var enabledTransitionSet = new Set();
|
|
@@ -3513,7 +3513,7 @@ function selectEventlessTransitions(nextState) {
|
|
|
3513
3513
|
try {
|
|
3514
3514
|
for (_iterator46.s(); !(_step46 = _iterator46.n()).done;) {
|
|
3515
3515
|
var transition = _step46.value;
|
|
3516
|
-
if (transition.guard === undefined || evaluateGuard(transition.guard, nextState.context, nextState.
|
|
3516
|
+
if (transition.guard === undefined || evaluateGuard(transition.guard, nextState.context, nextState.event, nextState)) {
|
|
3517
3517
|
enabledTransitionSet.add(transition);
|
|
3518
3518
|
break loop;
|
|
3519
3519
|
}
|
|
@@ -3607,16 +3607,14 @@ var State = /*#__PURE__*/function () {
|
|
|
3607
3607
|
_defineProperty(this, "actions", []);
|
|
3608
3608
|
_defineProperty(this, "event", void 0);
|
|
3609
3609
|
_defineProperty(this, "_internalQueue", void 0);
|
|
3610
|
-
_defineProperty(this, "_event", void 0);
|
|
3611
3610
|
_defineProperty(this, "_initial", false);
|
|
3612
3611
|
_defineProperty(this, "changed", void 0);
|
|
3613
3612
|
_defineProperty(this, "configuration", void 0);
|
|
3614
3613
|
_defineProperty(this, "transitions", void 0);
|
|
3615
3614
|
_defineProperty(this, "children", void 0);
|
|
3616
3615
|
this.context = config.context;
|
|
3617
|
-
this._event = config._event;
|
|
3618
3616
|
this._internalQueue = (_config$_internalQueu = config._internalQueue) !== null && _config$_internalQueu !== void 0 ? _config$_internalQueu : [];
|
|
3619
|
-
this.event =
|
|
3617
|
+
this.event = config.event;
|
|
3620
3618
|
this.historyValue = config.historyValue || {};
|
|
3621
3619
|
this.actions = (_config$actions = config.actions) !== null && _config$actions !== void 0 ? _config$actions : [];
|
|
3622
3620
|
this.matches = this.matches.bind(this);
|
|
@@ -3656,11 +3654,11 @@ var State = /*#__PURE__*/function () {
|
|
|
3656
3654
|
}, {
|
|
3657
3655
|
key: "toJSON",
|
|
3658
3656
|
value: function toJSON() {
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
tags = this.tags
|
|
3662
|
-
|
|
3663
|
-
jsonValues = _objectWithoutProperties(this, _excluded);
|
|
3657
|
+
this.configuration;
|
|
3658
|
+
this.transitions;
|
|
3659
|
+
var tags = this.tags;
|
|
3660
|
+
this.machine;
|
|
3661
|
+
var jsonValues = _objectWithoutProperties(this, _excluded);
|
|
3664
3662
|
return _objectSpread2(_objectSpread2({}, jsonValues), {}, {
|
|
3665
3663
|
tags: Array.from(tags),
|
|
3666
3664
|
meta: this.meta
|
|
@@ -3701,7 +3699,7 @@ var State = /*#__PURE__*/function () {
|
|
|
3701
3699
|
if (dev_dist_xstateDev.IS_PRODUCTION) {
|
|
3702
3700
|
warn(!!this.machine, "state.can(...) used outside of a machine-created State object; this will always return false.");
|
|
3703
3701
|
}
|
|
3704
|
-
var transitionData = this.machine.getTransitionData(this,
|
|
3702
|
+
var transitionData = this.machine.getTransitionData(this, event);
|
|
3705
3703
|
return !!(transitionData !== null && transitionData !== void 0 && transitionData.length) &&
|
|
3706
3704
|
// Check that at least one transition is not forbidden
|
|
3707
3705
|
transitionData.some(function (t) {
|
|
@@ -3778,7 +3776,7 @@ var State = /*#__PURE__*/function () {
|
|
|
3778
3776
|
return new State({
|
|
3779
3777
|
value: stateValue.value,
|
|
3780
3778
|
context: context,
|
|
3781
|
-
|
|
3779
|
+
event: stateValue.event,
|
|
3782
3780
|
actions: [],
|
|
3783
3781
|
meta: {},
|
|
3784
3782
|
configuration: [],
|
|
@@ -3789,13 +3787,13 @@ var State = /*#__PURE__*/function () {
|
|
|
3789
3787
|
}
|
|
3790
3788
|
return stateValue;
|
|
3791
3789
|
}
|
|
3792
|
-
var
|
|
3790
|
+
var event = createInitEvent({}); // TODO: fix
|
|
3793
3791
|
|
|
3794
3792
|
var configuration = getConfiguration(getStateNodes(machine.root, stateValue));
|
|
3795
3793
|
return new State({
|
|
3796
3794
|
value: stateValue,
|
|
3797
3795
|
context: context,
|
|
3798
|
-
|
|
3796
|
+
event: event,
|
|
3799
3797
|
actions: [],
|
|
3800
3798
|
meta: undefined,
|
|
3801
3799
|
configuration: Array.from(configuration),
|
|
@@ -3811,11 +3809,11 @@ function cloneState(state) {
|
|
|
3811
3809
|
return new State(_objectSpread2(_objectSpread2({}, state), config), state.machine);
|
|
3812
3810
|
}
|
|
3813
3811
|
function getPersistedState(state) {
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
children = state.children,
|
|
3812
|
+
state.configuration;
|
|
3813
|
+
state.transitions;
|
|
3814
|
+
state.tags;
|
|
3815
|
+
state.machine;
|
|
3816
|
+
var children = state.children,
|
|
3819
3817
|
jsonValues = _objectWithoutProperties(state, _excluded2);
|
|
3820
3818
|
var childrenJson = {};
|
|
3821
3819
|
for (var id in children) {
|
|
@@ -3830,14 +3828,14 @@ function getPersistedState(state) {
|
|
|
3830
3828
|
});
|
|
3831
3829
|
}
|
|
3832
3830
|
|
|
3833
|
-
function invoke
|
|
3831
|
+
function invoke(invokeDef) {
|
|
3834
3832
|
return createDynamicAction({
|
|
3835
|
-
type: invoke,
|
|
3833
|
+
type: invoke$1,
|
|
3836
3834
|
params: invokeDef
|
|
3837
|
-
}, function (
|
|
3835
|
+
}, function (event, _ref) {
|
|
3838
3836
|
var state = _ref.state,
|
|
3839
3837
|
actorContext = _ref.actorContext;
|
|
3840
|
-
var type = invoke;
|
|
3838
|
+
var type = invoke$1;
|
|
3841
3839
|
var id = invokeDef.id,
|
|
3842
3840
|
src = invokeDef.src;
|
|
3843
3841
|
var resolvedInvokeAction;
|
|
@@ -3864,7 +3862,7 @@ function invoke$1(invokeDef) {
|
|
|
3864
3862
|
systemId: invokeDef.systemId,
|
|
3865
3863
|
input: typeof input === 'function' ? input({
|
|
3866
3864
|
context: state.context,
|
|
3867
|
-
event:
|
|
3865
|
+
event: event,
|
|
3868
3866
|
self: actorContext === null || actorContext === void 0 ? void 0 : actorContext.self
|
|
3869
3867
|
}) : input
|
|
3870
3868
|
});
|
|
@@ -3899,7 +3897,7 @@ function invoke$1(invokeDef) {
|
|
|
3899
3897
|
var _actorRef$start;
|
|
3900
3898
|
(_actorRef$start = actorRef.start) === null || _actorRef$start === void 0 ? void 0 : _actorRef$start.call(actorRef);
|
|
3901
3899
|
} catch (err) {
|
|
3902
|
-
parent.send(error
|
|
3900
|
+
parent.send(error(id, err));
|
|
3903
3901
|
return;
|
|
3904
3902
|
}
|
|
3905
3903
|
});
|
|
@@ -3908,7 +3906,7 @@ function invoke$1(invokeDef) {
|
|
|
3908
3906
|
});
|
|
3909
3907
|
}
|
|
3910
3908
|
|
|
3911
|
-
function createSpawner(self, machine, context,
|
|
3909
|
+
function createSpawner(self, machine, context, event, mutCapturedActions) {
|
|
3912
3910
|
return function (src) {
|
|
3913
3911
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3914
3912
|
if (isString(src)) {
|
|
@@ -3924,11 +3922,11 @@ function createSpawner(self, machine, context, _event, mutCapturedActions) {
|
|
|
3924
3922
|
parent: self,
|
|
3925
3923
|
input: typeof input === 'function' ? input({
|
|
3926
3924
|
context: context,
|
|
3927
|
-
event:
|
|
3925
|
+
event: event,
|
|
3928
3926
|
self: self
|
|
3929
3927
|
}) : input
|
|
3930
3928
|
});
|
|
3931
|
-
mutCapturedActions.push(invoke
|
|
3929
|
+
mutCapturedActions.push(invoke({
|
|
3932
3930
|
id: actorRef.id,
|
|
3933
3931
|
// @ts-ignore TODO: fix types
|
|
3934
3932
|
src: actorRef,
|
|
@@ -3949,7 +3947,7 @@ function createSpawner(self, machine, context, _event, mutCapturedActions) {
|
|
|
3949
3947
|
parent: self,
|
|
3950
3948
|
input: options.input
|
|
3951
3949
|
});
|
|
3952
|
-
mutCapturedActions.push(invoke
|
|
3950
|
+
mutCapturedActions.push(invoke({
|
|
3953
3951
|
// @ts-ignore TODO: fix types
|
|
3954
3952
|
src: _actorRef,
|
|
3955
3953
|
ref: _actorRef,
|
|
@@ -3967,13 +3965,13 @@ function createSpawner(self, machine, context, _event, mutCapturedActions) {
|
|
|
3967
3965
|
*
|
|
3968
3966
|
* @param assignment An object that represents the partial context to update.
|
|
3969
3967
|
*/
|
|
3970
|
-
function assign
|
|
3968
|
+
function assign(assignment) {
|
|
3971
3969
|
return createDynamicAction({
|
|
3972
|
-
type: assign,
|
|
3970
|
+
type: assign$1,
|
|
3973
3971
|
params: {
|
|
3974
3972
|
assignment: assignment
|
|
3975
3973
|
}
|
|
3976
|
-
}, function (
|
|
3974
|
+
}, function (event, _ref) {
|
|
3977
3975
|
var _actorContext$self;
|
|
3978
3976
|
var state = _ref.state,
|
|
3979
3977
|
action = _ref.action,
|
|
@@ -3984,10 +3982,9 @@ function assign$1(assignment) {
|
|
|
3984
3982
|
}
|
|
3985
3983
|
var args = {
|
|
3986
3984
|
context: state.context,
|
|
3987
|
-
event:
|
|
3985
|
+
event: event,
|
|
3988
3986
|
action: action,
|
|
3989
|
-
|
|
3990
|
-
spawn: createSpawner(actorContext === null || actorContext === void 0 ? void 0 : actorContext.self, state.machine, state.context, _event, capturedActions),
|
|
3987
|
+
spawn: createSpawner(actorContext === null || actorContext === void 0 ? void 0 : actorContext.self, state.machine, state.context, event, capturedActions),
|
|
3991
3988
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : {},
|
|
3992
3989
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
3993
3990
|
};
|
|
@@ -4005,7 +4002,7 @@ function assign$1(assignment) {
|
|
|
4005
4002
|
return [cloneState(state, {
|
|
4006
4003
|
context: updatedContext
|
|
4007
4004
|
}), {
|
|
4008
|
-
type: assign,
|
|
4005
|
+
type: assign$1,
|
|
4009
4006
|
params: {
|
|
4010
4007
|
context: updatedContext,
|
|
4011
4008
|
actions: capturedActions
|
|
@@ -4021,15 +4018,15 @@ function assign$1(assignment) {
|
|
|
4021
4018
|
* @param eventType The event to raise.
|
|
4022
4019
|
*/
|
|
4023
4020
|
|
|
4024
|
-
function raise
|
|
4021
|
+
function raise(eventOrExpr, options) {
|
|
4025
4022
|
return createDynamicAction({
|
|
4026
|
-
type: raise,
|
|
4023
|
+
type: raise$1,
|
|
4027
4024
|
params: {
|
|
4028
4025
|
delay: options ? options.delay : undefined,
|
|
4029
4026
|
event: eventOrExpr,
|
|
4030
4027
|
id: options && options.id !== undefined ? options.id : typeof eventOrExpr === 'function' ? eventOrExpr.name : eventOrExpr.type
|
|
4031
4028
|
}
|
|
4032
|
-
}, function (
|
|
4029
|
+
}, function (event, _ref) {
|
|
4033
4030
|
var _actorContext$self;
|
|
4034
4031
|
var state = _ref.state,
|
|
4035
4032
|
actorContext = _ref.actorContext;
|
|
@@ -4040,15 +4037,17 @@ function raise$1(eventOrExpr, options) {
|
|
|
4040
4037
|
};
|
|
4041
4038
|
var args = {
|
|
4042
4039
|
context: state.context,
|
|
4043
|
-
event:
|
|
4044
|
-
_event: _event,
|
|
4040
|
+
event: event,
|
|
4045
4041
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : {},
|
|
4046
4042
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
4047
4043
|
};
|
|
4048
4044
|
var delaysMap = state.machine.options.delays;
|
|
4049
4045
|
|
|
4050
4046
|
// TODO: helper function for resolving Expr
|
|
4051
|
-
|
|
4047
|
+
if (typeof eventOrExpr === 'string') {
|
|
4048
|
+
throw new Error("Only event objects may be used with raise; use raise({ type: \"".concat(eventOrExpr, "\" }) instead"));
|
|
4049
|
+
}
|
|
4050
|
+
var resolvedEvent = typeof eventOrExpr === 'function' ? eventOrExpr(args) : eventOrExpr;
|
|
4052
4051
|
var resolvedDelay;
|
|
4053
4052
|
if (typeof params.delay === 'string') {
|
|
4054
4053
|
var configDelay = delaysMap && delaysMap[params.delay];
|
|
@@ -4057,10 +4056,9 @@ function raise$1(eventOrExpr, options) {
|
|
|
4057
4056
|
resolvedDelay = typeof params.delay === 'function' ? params.delay(args) : params.delay;
|
|
4058
4057
|
}
|
|
4059
4058
|
var resolvedAction = {
|
|
4060
|
-
type: raise,
|
|
4059
|
+
type: raise$1,
|
|
4061
4060
|
params: _objectSpread2(_objectSpread2({}, params), {}, {
|
|
4062
|
-
|
|
4063
|
-
event: resolvedEvent.data,
|
|
4061
|
+
event: resolvedEvent,
|
|
4064
4062
|
delay: resolvedDelay
|
|
4065
4063
|
}),
|
|
4066
4064
|
execute: function execute(actorCtx) {
|
|
@@ -4074,23 +4072,23 @@ function raise$1(eventOrExpr, options) {
|
|
|
4074
4072
|
});
|
|
4075
4073
|
}
|
|
4076
4074
|
|
|
4077
|
-
function choose
|
|
4075
|
+
function choose(guards) {
|
|
4078
4076
|
return createDynamicAction({
|
|
4079
|
-
type: choose,
|
|
4077
|
+
type: choose$1,
|
|
4080
4078
|
params: {
|
|
4081
4079
|
guards: guards
|
|
4082
4080
|
}
|
|
4083
|
-
}, function (
|
|
4081
|
+
}, function (event, _ref) {
|
|
4084
4082
|
var _guards$find;
|
|
4085
4083
|
var state = _ref.state;
|
|
4086
4084
|
var matchedActions = (_guards$find = guards.find(function (condition) {
|
|
4087
4085
|
var guard = condition.guard && toGuardDefinition(condition.guard, function (guardType) {
|
|
4088
4086
|
return state.machine.options.guards[guardType];
|
|
4089
4087
|
});
|
|
4090
|
-
return !guard || evaluateGuard(guard, state.context,
|
|
4088
|
+
return !guard || evaluateGuard(guard, state.context, event, state);
|
|
4091
4089
|
})) === null || _guards$find === void 0 ? void 0 : _guards$find.actions;
|
|
4092
4090
|
return [state, {
|
|
4093
|
-
type: choose,
|
|
4091
|
+
type: choose$1,
|
|
4094
4092
|
params: {
|
|
4095
4093
|
actions: toActionObjects(matchedActions)
|
|
4096
4094
|
}
|
|
@@ -4098,9 +4096,30 @@ function choose$1(guards) {
|
|
|
4098
4096
|
});
|
|
4099
4097
|
}
|
|
4100
4098
|
|
|
4101
|
-
|
|
4099
|
+
function pure(getActions) {
|
|
4100
|
+
return createDynamicAction({
|
|
4101
|
+
type: pure$1,
|
|
4102
|
+
params: {
|
|
4103
|
+
get: getActions
|
|
4104
|
+
}
|
|
4105
|
+
}, function (event, _ref) {
|
|
4106
|
+
var _toArray;
|
|
4107
|
+
var state = _ref.state;
|
|
4108
|
+
return [state, {
|
|
4109
|
+
type: pure$1,
|
|
4110
|
+
params: {
|
|
4111
|
+
actions: (_toArray = toArray(toActionObjects(getActions({
|
|
4112
|
+
context: state.context,
|
|
4113
|
+
event: event
|
|
4114
|
+
})))) !== null && _toArray !== void 0 ? _toArray : []
|
|
4115
|
+
}
|
|
4116
|
+
}];
|
|
4117
|
+
});
|
|
4118
|
+
}
|
|
4119
|
+
|
|
4120
|
+
var initEvent = {
|
|
4102
4121
|
type: init
|
|
4103
|
-
}
|
|
4122
|
+
};
|
|
4104
4123
|
function resolveActionObject(actionObject, actionFunctionMap) {
|
|
4105
4124
|
if (isDynamicAction(actionObject)) {
|
|
4106
4125
|
return actionObject;
|
|
@@ -4111,7 +4130,7 @@ function resolveActionObject(actionObject, actionFunctionMap) {
|
|
|
4111
4130
|
return createDynamicAction({
|
|
4112
4131
|
type: 'xstate.function',
|
|
4113
4132
|
params: (_actionObject$params = actionObject.params) !== null && _actionObject$params !== void 0 ? _actionObject$params : {}
|
|
4114
|
-
}, function (
|
|
4133
|
+
}, function (event, _ref) {
|
|
4115
4134
|
var state = _ref.state;
|
|
4116
4135
|
var a = {
|
|
4117
4136
|
type: actionObject.type,
|
|
@@ -4119,9 +4138,8 @@ function resolveActionObject(actionObject, actionFunctionMap) {
|
|
|
4119
4138
|
execute: function execute(actorCtx) {
|
|
4120
4139
|
return dereferencedAction({
|
|
4121
4140
|
context: state.context,
|
|
4122
|
-
event:
|
|
4141
|
+
event: event,
|
|
4123
4142
|
action: a,
|
|
4124
|
-
_event: state._event,
|
|
4125
4143
|
system: actorCtx.system,
|
|
4126
4144
|
self: actorCtx.self
|
|
4127
4145
|
});
|
|
@@ -4150,7 +4168,7 @@ function toActionObject(action) {
|
|
|
4150
4168
|
return createDynamicAction({
|
|
4151
4169
|
type: type,
|
|
4152
4170
|
params: {}
|
|
4153
|
-
}, function (
|
|
4171
|
+
}, function (event, _ref2) {
|
|
4154
4172
|
var state = _ref2.state;
|
|
4155
4173
|
var actionObject = {
|
|
4156
4174
|
type: type,
|
|
@@ -4160,9 +4178,8 @@ function toActionObject(action) {
|
|
|
4160
4178
|
execute: function execute(actorCtx) {
|
|
4161
4179
|
return action({
|
|
4162
4180
|
context: state.context,
|
|
4163
|
-
event:
|
|
4181
|
+
event: event,
|
|
4164
4182
|
action: actionObject,
|
|
4165
|
-
_event: _event,
|
|
4166
4183
|
self: actorCtx.self,
|
|
4167
4184
|
system: actorCtx.system
|
|
4168
4185
|
});
|
|
@@ -4190,7 +4207,7 @@ var toActionObjects = function toActionObjects(action) {
|
|
|
4190
4207
|
* @param delayRef The delay in milliseconds
|
|
4191
4208
|
* @param id The state node ID where this event is handled
|
|
4192
4209
|
*/
|
|
4193
|
-
function after
|
|
4210
|
+
function after(delayRef, id) {
|
|
4194
4211
|
var idSuffix = id ? "#".concat(id) : '';
|
|
4195
4212
|
return "".concat(exports.ActionTypes.After, "(").concat(delayRef, ")").concat(idSuffix);
|
|
4196
4213
|
}
|
|
@@ -4234,7 +4251,7 @@ function doneInvoke(invokeId, output) {
|
|
|
4234
4251
|
};
|
|
4235
4252
|
return eventObject;
|
|
4236
4253
|
}
|
|
4237
|
-
function error
|
|
4254
|
+
function error(id, data) {
|
|
4238
4255
|
var type = "".concat(exports.ActionTypes.ErrorPlatform, ".").concat(id);
|
|
4239
4256
|
var eventObject = {
|
|
4240
4257
|
type: type,
|
|
@@ -4246,10 +4263,10 @@ function error$1(id, data) {
|
|
|
4246
4263
|
return eventObject;
|
|
4247
4264
|
}
|
|
4248
4265
|
function createInitEvent(input) {
|
|
4249
|
-
return
|
|
4266
|
+
return {
|
|
4250
4267
|
type: init,
|
|
4251
4268
|
input: input
|
|
4252
|
-
}
|
|
4269
|
+
};
|
|
4253
4270
|
}
|
|
4254
4271
|
|
|
4255
4272
|
exports.Interpreter = Interpreter;
|
|
@@ -4265,18 +4282,18 @@ exports._objectWithoutProperties = _objectWithoutProperties;
|
|
|
4265
4282
|
exports._slicedToArray = _slicedToArray;
|
|
4266
4283
|
exports._toConsumableArray = _toConsumableArray;
|
|
4267
4284
|
exports.actionTypes = actionTypes;
|
|
4268
|
-
exports.after = after
|
|
4285
|
+
exports.after = after;
|
|
4269
4286
|
exports.and = and;
|
|
4270
|
-
exports.assign = assign
|
|
4271
|
-
exports.cancel = cancel
|
|
4272
|
-
exports.choose = choose
|
|
4273
|
-
exports.
|
|
4287
|
+
exports.assign = assign;
|
|
4288
|
+
exports.cancel = cancel;
|
|
4289
|
+
exports.choose = choose;
|
|
4290
|
+
exports.createEmptyActor = createEmptyActor;
|
|
4274
4291
|
exports.createInitEvent = createInitEvent;
|
|
4275
4292
|
exports.createInvokeId = createInvokeId;
|
|
4276
4293
|
exports.createSpawner = createSpawner;
|
|
4277
4294
|
exports.done = done;
|
|
4278
4295
|
exports.doneInvoke = doneInvoke;
|
|
4279
|
-
exports.error = error
|
|
4296
|
+
exports.error = error;
|
|
4280
4297
|
exports.escalate = escalate;
|
|
4281
4298
|
exports.evaluateGuard = evaluateGuard;
|
|
4282
4299
|
exports.flatten = flatten;
|
|
@@ -4298,14 +4315,14 @@ exports.getStateNodeByPath = getStateNodeByPath;
|
|
|
4298
4315
|
exports.getStateNodes = getStateNodes;
|
|
4299
4316
|
exports.initEvent = initEvent;
|
|
4300
4317
|
exports.interpret = interpret;
|
|
4301
|
-
exports.invoke = invoke;
|
|
4318
|
+
exports.invoke = invoke$1;
|
|
4302
4319
|
exports.isActorRef = isActorRef;
|
|
4320
|
+
exports.isErrorEvent = isErrorEvent;
|
|
4303
4321
|
exports.isInFinalState = isInFinalState;
|
|
4304
|
-
exports.isSCXMLErrorEvent = isSCXMLErrorEvent;
|
|
4305
4322
|
exports.isSignal = isSignal;
|
|
4306
4323
|
exports.isStateId = isStateId;
|
|
4307
4324
|
exports.isString = isString;
|
|
4308
|
-
exports.log = log
|
|
4325
|
+
exports.log = log;
|
|
4309
4326
|
exports.macrostep = macrostep;
|
|
4310
4327
|
exports.mapValues = mapValues;
|
|
4311
4328
|
exports.matchesState = matchesState;
|
|
@@ -4315,19 +4332,18 @@ exports.not = not;
|
|
|
4315
4332
|
exports.or = or;
|
|
4316
4333
|
exports.pathToStateValue = pathToStateValue;
|
|
4317
4334
|
exports.pure = pure;
|
|
4318
|
-
exports.raise = raise
|
|
4335
|
+
exports.raise = raise;
|
|
4319
4336
|
exports.resolveActionObject = resolveActionObject;
|
|
4320
4337
|
exports.resolveActionsAndContext = resolveActionsAndContext;
|
|
4321
4338
|
exports.resolveReferencedActor = resolveReferencedActor;
|
|
4322
4339
|
exports.resolveStateValue = resolveStateValue;
|
|
4323
|
-
exports.
|
|
4324
|
-
exports.send = send$1;
|
|
4340
|
+
exports.send = send;
|
|
4325
4341
|
exports.sendParent = sendParent;
|
|
4326
4342
|
exports.sendTo = sendTo;
|
|
4327
4343
|
exports.startSignal = startSignal;
|
|
4328
4344
|
exports.startSignalType = startSignalType;
|
|
4329
4345
|
exports.stateIn = stateIn;
|
|
4330
|
-
exports.stop = stop
|
|
4346
|
+
exports.stop = stop;
|
|
4331
4347
|
exports.stopSignal = stopSignal;
|
|
4332
4348
|
exports.stopSignalType = stopSignalType;
|
|
4333
4349
|
exports.toActionObject = toActionObject;
|
|
@@ -4337,6 +4353,5 @@ exports.toArray = toArray;
|
|
|
4337
4353
|
exports.toGuardDefinition = toGuardDefinition;
|
|
4338
4354
|
exports.toInvokeConfig = toInvokeConfig;
|
|
4339
4355
|
exports.toObserver = toObserver;
|
|
4340
|
-
exports.toSCXMLEvent = toSCXMLEvent;
|
|
4341
4356
|
exports.toTransitionConfigArray = toTransitionConfigArray;
|
|
4342
4357
|
exports.transitionNode = transitionNode;
|