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
|
@@ -1,8 +1,40 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var dev_dist_xstateDev = require('
|
|
3
|
+
var dev_dist_xstateDev = require('./index-0f3fdf0c.cjs.prod.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('../dev/dist/xstate-dev.cjs.prod.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];
|
|
@@ -380,6 +413,22 @@ function isPromiseLike(value) {
|
|
|
380
413
|
|
|
381
414
|
// tslint:disable-next-line:no-empty
|
|
382
415
|
var warn = function warn() {};
|
|
416
|
+
if (!dev_dist_xstateDev.IS_PRODUCTION) {
|
|
417
|
+
warn = function warn(condition, message) {
|
|
418
|
+
var error = condition instanceof Error ? condition : undefined;
|
|
419
|
+
if (!error && condition) {
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
if (console !== undefined) {
|
|
423
|
+
var args = ["Warning: ".concat(message)];
|
|
424
|
+
if (error) {
|
|
425
|
+
args.push(error);
|
|
426
|
+
}
|
|
427
|
+
// tslint:disable-next-line:no-console
|
|
428
|
+
console.warn.apply(console, args);
|
|
429
|
+
}
|
|
430
|
+
};
|
|
431
|
+
}
|
|
383
432
|
function isArray(value) {
|
|
384
433
|
return Array.isArray(value);
|
|
385
434
|
}
|
|
@@ -391,22 +440,8 @@ function isFunction(value) {
|
|
|
391
440
|
function isString(value) {
|
|
392
441
|
return typeof value === 'string';
|
|
393
442
|
}
|
|
394
|
-
function
|
|
395
|
-
return
|
|
396
|
-
}
|
|
397
|
-
function isSCXMLErrorEvent(event) {
|
|
398
|
-
return typeof event.name === 'string' && (event.name === errorExecution || event.name.startsWith(errorPlatform));
|
|
399
|
-
}
|
|
400
|
-
function toSCXMLEvent(event, scxmlEvent) {
|
|
401
|
-
if (isSCXMLEvent(event)) {
|
|
402
|
-
return event;
|
|
403
|
-
}
|
|
404
|
-
return _objectSpread2({
|
|
405
|
-
name: event.type,
|
|
406
|
-
data: event,
|
|
407
|
-
$$type: 'scxml',
|
|
408
|
-
type: 'external'
|
|
409
|
-
}, scxmlEvent);
|
|
443
|
+
function isErrorEvent(event) {
|
|
444
|
+
return typeof event.type === 'string' && (event.type === errorExecution || event.type.startsWith(errorPlatform));
|
|
410
445
|
}
|
|
411
446
|
function toTransitionConfigArray(event, configLike) {
|
|
412
447
|
var transitions = toArrayStrict(configLike).map(function (transitionLike) {
|
|
@@ -488,16 +523,16 @@ function isDynamicAction(action) {
|
|
|
488
523
|
* - `delay` - The number of milliseconds to delay the sending of the event.
|
|
489
524
|
* - `to` - The target of this event (by default, the machine the event was sent from).
|
|
490
525
|
*/
|
|
491
|
-
function send
|
|
526
|
+
function send(eventOrExpr, options) {
|
|
492
527
|
return createDynamicAction({
|
|
493
|
-
type: send,
|
|
528
|
+
type: send$1,
|
|
494
529
|
params: {
|
|
495
530
|
to: options ? options.to : undefined,
|
|
496
531
|
delay: options ? options.delay : undefined,
|
|
497
532
|
event: eventOrExpr,
|
|
498
533
|
id: options && options.id !== undefined ? options.id : isFunction(eventOrExpr) ? eventOrExpr.name : eventOrExpr.type
|
|
499
534
|
}
|
|
500
|
-
}, function (
|
|
535
|
+
}, function (event, _ref) {
|
|
501
536
|
var _actorContext$self;
|
|
502
537
|
var actorContext = _ref.actorContext,
|
|
503
538
|
state = _ref.state;
|
|
@@ -511,15 +546,17 @@ function send$1(eventOrExpr, options) {
|
|
|
511
546
|
};
|
|
512
547
|
var args = {
|
|
513
548
|
context: state.context,
|
|
514
|
-
event:
|
|
515
|
-
_event: _event,
|
|
549
|
+
event: event,
|
|
516
550
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : null,
|
|
517
551
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
518
552
|
};
|
|
519
553
|
var delaysMap = state.machine.options.delays;
|
|
520
554
|
|
|
521
555
|
// TODO: helper function for resolving Expr
|
|
522
|
-
|
|
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;
|
|
523
560
|
var resolvedDelay;
|
|
524
561
|
if (isString(params.delay)) {
|
|
525
562
|
var configDelay = delaysMap && delaysMap[params.delay];
|
|
@@ -548,11 +585,10 @@ function send$1(eventOrExpr, options) {
|
|
|
548
585
|
targetActorRef = resolvedTarget || (actorContext === null || actorContext === void 0 ? void 0 : actorContext.self);
|
|
549
586
|
}
|
|
550
587
|
var resolvedAction = {
|
|
551
|
-
type: send,
|
|
588
|
+
type: send$1,
|
|
552
589
|
params: _objectSpread2(_objectSpread2({}, params), {}, {
|
|
553
590
|
to: targetActorRef,
|
|
554
|
-
|
|
555
|
-
event: resolvedEvent.data,
|
|
591
|
+
event: resolvedEvent,
|
|
556
592
|
delay: resolvedDelay,
|
|
557
593
|
internal: resolvedTarget === exports.SpecialTargets.Internal
|
|
558
594
|
}),
|
|
@@ -563,14 +599,12 @@ function send$1(eventOrExpr, options) {
|
|
|
563
599
|
return;
|
|
564
600
|
} else {
|
|
565
601
|
var target = sendAction.params.to;
|
|
566
|
-
var
|
|
602
|
+
var sentEvent = sendAction.params.event;
|
|
567
603
|
actorCtx.defer(function () {
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
});
|
|
573
|
-
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);
|
|
574
608
|
});
|
|
575
609
|
}
|
|
576
610
|
}
|
|
@@ -586,26 +620,11 @@ function send$1(eventOrExpr, options) {
|
|
|
586
620
|
* @param options Options to pass into the send event.
|
|
587
621
|
*/
|
|
588
622
|
function sendParent(event, options) {
|
|
589
|
-
return send
|
|
623
|
+
return send(event, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
590
624
|
to: exports.SpecialTargets.Parent
|
|
591
625
|
}));
|
|
592
626
|
}
|
|
593
627
|
|
|
594
|
-
/**
|
|
595
|
-
* Sends an event back to the sender of the original event.
|
|
596
|
-
*
|
|
597
|
-
* @param event The event to send back to the sender
|
|
598
|
-
* @param options Options to pass into the send event
|
|
599
|
-
*/
|
|
600
|
-
function respond(event, options) {
|
|
601
|
-
return send$1(event, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
602
|
-
to: function to(_ref2) {
|
|
603
|
-
var _event = _ref2._event;
|
|
604
|
-
return _event.origin; // TODO: handle when _event.origin is undefined
|
|
605
|
-
}
|
|
606
|
-
}));
|
|
607
|
-
}
|
|
608
|
-
|
|
609
628
|
/**
|
|
610
629
|
* Forwards (sends) an event to a specified service.
|
|
611
630
|
*
|
|
@@ -613,18 +632,8 @@ function respond(event, options) {
|
|
|
613
632
|
* @param options Options to pass into the send action creator.
|
|
614
633
|
*/
|
|
615
634
|
function forwardTo(target, options) {
|
|
616
|
-
|
|
617
|
-
var
|
|
618
|
-
target = function target() {
|
|
619
|
-
var resolvedTarget = typeof originalTarget === 'function' ? originalTarget.apply(void 0, arguments) : originalTarget;
|
|
620
|
-
if (!resolvedTarget) {
|
|
621
|
-
throw new Error("Attempted to forward event to undefined actor. This risks an infinite loop in the sender.");
|
|
622
|
-
}
|
|
623
|
-
return resolvedTarget;
|
|
624
|
-
};
|
|
625
|
-
}
|
|
626
|
-
return send$1(function (_ref3) {
|
|
627
|
-
var event = _ref3.event;
|
|
635
|
+
return send(function (_ref2) {
|
|
636
|
+
var event = _ref2.event;
|
|
628
637
|
return event;
|
|
629
638
|
}, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
630
639
|
to: target
|
|
@@ -641,7 +650,7 @@ function forwardTo(target, options) {
|
|
|
641
650
|
function escalate(errorData, options) {
|
|
642
651
|
return sendParent(function (arg) {
|
|
643
652
|
return {
|
|
644
|
-
type: error,
|
|
653
|
+
type: error$1,
|
|
645
654
|
data: isFunction(errorData) ? errorData(arg) : errorData
|
|
646
655
|
};
|
|
647
656
|
}, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
@@ -658,7 +667,7 @@ function escalate(errorData, options) {
|
|
|
658
667
|
* @returns An XState send action object
|
|
659
668
|
*/
|
|
660
669
|
function sendTo(actor, event, options) {
|
|
661
|
-
return send
|
|
670
|
+
return send(event, _objectSpread2(_objectSpread2({}, options), {}, {
|
|
662
671
|
to: actor
|
|
663
672
|
}));
|
|
664
673
|
}
|
|
@@ -782,11 +791,9 @@ var symbolObservable = function () {
|
|
|
782
791
|
*/
|
|
783
792
|
function fromTransition(_transition, initialState) {
|
|
784
793
|
var behavior = {
|
|
794
|
+
config: _transition,
|
|
785
795
|
transition: function transition(state, event, actorContext) {
|
|
786
|
-
|
|
787
|
-
var resolvedEvent = isSCXMLEvent(event) ? event.data : event;
|
|
788
|
-
// @ts-ignore TODO
|
|
789
|
-
return _transition(state, resolvedEvent, actorContext);
|
|
796
|
+
return _transition(state, event, actorContext);
|
|
790
797
|
},
|
|
791
798
|
getInitialState: function getInitialState(_, input) {
|
|
792
799
|
return typeof initialState === 'function' ? initialState({
|
|
@@ -814,27 +821,29 @@ promiseCreator) {
|
|
|
814
821
|
|
|
815
822
|
// TODO: add event types
|
|
816
823
|
var behavior = {
|
|
824
|
+
config: promiseCreator,
|
|
817
825
|
transition: function transition(state, event) {
|
|
818
|
-
|
|
819
|
-
if (state.canceled) {
|
|
826
|
+
if (state.status !== 'active') {
|
|
820
827
|
return state;
|
|
821
828
|
}
|
|
822
|
-
|
|
823
|
-
switch (_event.name) {
|
|
829
|
+
switch (event.type) {
|
|
824
830
|
case resolveEventType:
|
|
825
|
-
state
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
831
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
832
|
+
status: 'done',
|
|
833
|
+
data: event.data,
|
|
834
|
+
input: undefined
|
|
835
|
+
});
|
|
829
836
|
case rejectEventType:
|
|
830
|
-
state
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
837
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
838
|
+
status: 'error',
|
|
839
|
+
data: event.data,
|
|
840
|
+
input: undefined
|
|
841
|
+
});
|
|
834
842
|
case stopSignalType:
|
|
835
|
-
state
|
|
836
|
-
|
|
837
|
-
|
|
843
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
844
|
+
status: 'canceled',
|
|
845
|
+
input: undefined
|
|
846
|
+
});
|
|
838
847
|
default:
|
|
839
848
|
return state;
|
|
840
849
|
}
|
|
@@ -850,11 +859,19 @@ promiseCreator) {
|
|
|
850
859
|
input: state.input
|
|
851
860
|
}));
|
|
852
861
|
resolvedPromise.then(function (response) {
|
|
862
|
+
// TODO: remove this condition once dead letter queue lands
|
|
863
|
+
if (self._state.status !== 'active') {
|
|
864
|
+
return;
|
|
865
|
+
}
|
|
853
866
|
self.send({
|
|
854
867
|
type: resolveEventType,
|
|
855
868
|
data: response
|
|
856
869
|
});
|
|
857
870
|
}, function (errorData) {
|
|
871
|
+
// TODO: remove this condition once dead letter queue lands
|
|
872
|
+
if (self._state.status !== 'active') {
|
|
873
|
+
return;
|
|
874
|
+
}
|
|
858
875
|
self.send({
|
|
859
876
|
type: rejectEventType,
|
|
860
877
|
data: errorData
|
|
@@ -863,7 +880,6 @@ promiseCreator) {
|
|
|
863
880
|
},
|
|
864
881
|
getInitialState: function getInitialState(_, input) {
|
|
865
882
|
return {
|
|
866
|
-
canceled: false,
|
|
867
883
|
status: 'active',
|
|
868
884
|
data: undefined,
|
|
869
885
|
input: input
|
|
@@ -893,43 +909,48 @@ function fromObservable(observableCreator) {
|
|
|
893
909
|
|
|
894
910
|
// TODO: add event types
|
|
895
911
|
var behavior = {
|
|
912
|
+
config: observableCreator,
|
|
896
913
|
transition: function transition(state, event, _ref) {
|
|
897
914
|
var self = _ref.self,
|
|
898
915
|
id = _ref.id,
|
|
899
916
|
defer = _ref.defer;
|
|
900
|
-
|
|
901
|
-
if (state.canceled) {
|
|
917
|
+
if (state.status !== 'active') {
|
|
902
918
|
return state;
|
|
903
919
|
}
|
|
904
|
-
switch (
|
|
920
|
+
switch (event.type) {
|
|
905
921
|
case nextEventType:
|
|
906
|
-
state.data = event.data.data;
|
|
907
922
|
// match the exact timing of events sent by machines
|
|
908
923
|
// send actions are not executed immediately
|
|
909
924
|
defer(function () {
|
|
910
925
|
var _self$_parent;
|
|
911
|
-
(_self$_parent = self._parent) === null || _self$_parent === void 0 ? void 0 : _self$_parent.send(
|
|
926
|
+
(_self$_parent = self._parent) === null || _self$_parent === void 0 ? void 0 : _self$_parent.send({
|
|
912
927
|
type: "xstate.snapshot.".concat(id),
|
|
913
|
-
data:
|
|
914
|
-
}
|
|
915
|
-
|
|
916
|
-
|
|
928
|
+
data: event.data
|
|
929
|
+
});
|
|
930
|
+
});
|
|
931
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
932
|
+
data: event.data
|
|
917
933
|
});
|
|
918
|
-
return state;
|
|
919
934
|
case errorEventType:
|
|
920
|
-
state
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
935
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
936
|
+
status: 'error',
|
|
937
|
+
input: undefined,
|
|
938
|
+
data: event.data,
|
|
939
|
+
subscription: undefined
|
|
940
|
+
});
|
|
924
941
|
case completeEventType:
|
|
925
|
-
state
|
|
926
|
-
|
|
927
|
-
|
|
942
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
943
|
+
status: 'done',
|
|
944
|
+
input: undefined,
|
|
945
|
+
subscription: undefined
|
|
946
|
+
});
|
|
928
947
|
case stopSignalType:
|
|
929
|
-
state.canceled = true;
|
|
930
|
-
delete state.input;
|
|
931
948
|
state.subscription.unsubscribe();
|
|
932
|
-
return state
|
|
949
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
950
|
+
status: 'canceled',
|
|
951
|
+
input: undefined,
|
|
952
|
+
subscription: undefined
|
|
953
|
+
});
|
|
933
954
|
default:
|
|
934
955
|
return state;
|
|
935
956
|
}
|
|
@@ -937,7 +958,6 @@ function fromObservable(observableCreator) {
|
|
|
937
958
|
getInitialState: function getInitialState(_, input) {
|
|
938
959
|
return {
|
|
939
960
|
subscription: undefined,
|
|
940
|
-
canceled: false,
|
|
941
961
|
status: 'active',
|
|
942
962
|
data: undefined,
|
|
943
963
|
input: input
|
|
@@ -975,12 +995,10 @@ function fromObservable(observableCreator) {
|
|
|
975
995
|
return state.data;
|
|
976
996
|
},
|
|
977
997
|
getPersistedState: function getPersistedState(_ref3) {
|
|
978
|
-
var
|
|
979
|
-
status = _ref3.status,
|
|
998
|
+
var status = _ref3.status,
|
|
980
999
|
data = _ref3.data,
|
|
981
1000
|
input = _ref3.input;
|
|
982
1001
|
return {
|
|
983
|
-
canceled: canceled,
|
|
984
1002
|
status: status,
|
|
985
1003
|
data: data,
|
|
986
1004
|
input: input
|
|
@@ -1013,26 +1031,32 @@ function fromEventObservable(lazyObservable) {
|
|
|
1013
1031
|
|
|
1014
1032
|
// TODO: event types
|
|
1015
1033
|
var behavior = {
|
|
1034
|
+
config: lazyObservable,
|
|
1016
1035
|
transition: function transition(state, event) {
|
|
1017
|
-
|
|
1018
|
-
if (state.canceled) {
|
|
1036
|
+
if (state.status !== 'active') {
|
|
1019
1037
|
return state;
|
|
1020
1038
|
}
|
|
1021
|
-
switch (
|
|
1039
|
+
switch (event.type) {
|
|
1022
1040
|
case errorEventType:
|
|
1023
|
-
state
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1041
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
1042
|
+
status: 'error',
|
|
1043
|
+
input: undefined,
|
|
1044
|
+
data: event.data,
|
|
1045
|
+
subscription: undefined
|
|
1046
|
+
});
|
|
1027
1047
|
case completeEventType:
|
|
1028
|
-
state
|
|
1029
|
-
|
|
1030
|
-
|
|
1048
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
1049
|
+
status: 'done',
|
|
1050
|
+
input: undefined,
|
|
1051
|
+
subscription: undefined
|
|
1052
|
+
});
|
|
1031
1053
|
case stopSignalType:
|
|
1032
|
-
state.canceled = true;
|
|
1033
|
-
delete state.input;
|
|
1034
1054
|
state.subscription.unsubscribe();
|
|
1035
|
-
return state
|
|
1055
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
1056
|
+
status: 'canceled',
|
|
1057
|
+
input: undefined,
|
|
1058
|
+
subscription: undefined
|
|
1059
|
+
});
|
|
1036
1060
|
default:
|
|
1037
1061
|
return state;
|
|
1038
1062
|
}
|
|
@@ -1040,7 +1064,6 @@ function fromEventObservable(lazyObservable) {
|
|
|
1040
1064
|
getInitialState: function getInitialState() {
|
|
1041
1065
|
return {
|
|
1042
1066
|
subscription: undefined,
|
|
1043
|
-
canceled: false,
|
|
1044
1067
|
status: 'active',
|
|
1045
1068
|
data: undefined
|
|
1046
1069
|
};
|
|
@@ -1056,9 +1079,7 @@ function fromEventObservable(lazyObservable) {
|
|
|
1056
1079
|
}).subscribe({
|
|
1057
1080
|
next: function next(value) {
|
|
1058
1081
|
var _self$_parent2;
|
|
1059
|
-
(_self$_parent2 = self._parent) === null || _self$_parent2 === void 0 ? void 0 : _self$_parent2.send(
|
|
1060
|
-
origin: self
|
|
1061
|
-
}));
|
|
1082
|
+
(_self$_parent2 = self._parent) === null || _self$_parent2 === void 0 ? void 0 : _self$_parent2.send(value);
|
|
1062
1083
|
},
|
|
1063
1084
|
error: function error(err) {
|
|
1064
1085
|
self.send({
|
|
@@ -1077,12 +1098,10 @@ function fromEventObservable(lazyObservable) {
|
|
|
1077
1098
|
return undefined;
|
|
1078
1099
|
},
|
|
1079
1100
|
getPersistedState: function getPersistedState(_ref5) {
|
|
1080
|
-
var
|
|
1081
|
-
status = _ref5.status,
|
|
1101
|
+
var status = _ref5.status,
|
|
1082
1102
|
data = _ref5.data,
|
|
1083
1103
|
input = _ref5.input;
|
|
1084
1104
|
return {
|
|
1085
|
-
canceled: canceled,
|
|
1086
1105
|
status: status,
|
|
1087
1106
|
data: data,
|
|
1088
1107
|
input: input
|
|
@@ -1102,6 +1121,7 @@ function fromEventObservable(lazyObservable) {
|
|
|
1102
1121
|
|
|
1103
1122
|
function fromCallback(invokeCallback) {
|
|
1104
1123
|
var behavior = {
|
|
1124
|
+
config: invokeCallback,
|
|
1105
1125
|
start: function start(_state, _ref) {
|
|
1106
1126
|
var self = _ref.self;
|
|
1107
1127
|
self.send({
|
|
@@ -1111,16 +1131,13 @@ function fromCallback(invokeCallback) {
|
|
|
1111
1131
|
transition: function transition(state, event, _ref2) {
|
|
1112
1132
|
var self = _ref2.self,
|
|
1113
1133
|
id = _ref2.id;
|
|
1114
|
-
|
|
1115
|
-
if (_event.name === startSignalType) {
|
|
1134
|
+
if (event.type === startSignalType) {
|
|
1116
1135
|
var sender = function sender(eventForParent) {
|
|
1117
1136
|
var _self$_parent;
|
|
1118
1137
|
if (state.canceled) {
|
|
1119
|
-
return
|
|
1138
|
+
return;
|
|
1120
1139
|
}
|
|
1121
|
-
(_self$_parent = self._parent) === null || _self$_parent === void 0 ? void 0 : _self$_parent.send(
|
|
1122
|
-
origin: self
|
|
1123
|
-
}));
|
|
1140
|
+
(_self$_parent = self._parent) === null || _self$_parent === void 0 ? void 0 : _self$_parent.send(eventForParent);
|
|
1124
1141
|
};
|
|
1125
1142
|
var receiver = function receiver(newListener) {
|
|
1126
1143
|
state.receivers.add(newListener);
|
|
@@ -1131,36 +1148,30 @@ function fromCallback(invokeCallback) {
|
|
|
1131
1148
|
if (isPromiseLike(state.dispose)) {
|
|
1132
1149
|
state.dispose.then(function (resolved) {
|
|
1133
1150
|
var _self$_parent2;
|
|
1134
|
-
(_self$_parent2 = self._parent) === null || _self$_parent2 === void 0 ? void 0 : _self$_parent2.send(
|
|
1135
|
-
origin: self
|
|
1136
|
-
}));
|
|
1151
|
+
(_self$_parent2 = self._parent) === null || _self$_parent2 === void 0 ? void 0 : _self$_parent2.send(doneInvoke(id, resolved));
|
|
1137
1152
|
state.canceled = true;
|
|
1138
1153
|
}, function (errorData) {
|
|
1139
1154
|
var _self$_parent3;
|
|
1140
|
-
var errorEvent = error$1(id, errorData);
|
|
1141
|
-
(_self$_parent3 = self._parent) === null || _self$_parent3 === void 0 ? void 0 : _self$_parent3.send(toSCXMLEvent(errorEvent, {
|
|
1142
|
-
origin: self
|
|
1143
|
-
}));
|
|
1144
1155
|
state.canceled = true;
|
|
1156
|
+
(_self$_parent3 = self._parent) === null || _self$_parent3 === void 0 ? void 0 : _self$_parent3.send(error(id, errorData));
|
|
1145
1157
|
});
|
|
1146
1158
|
}
|
|
1147
1159
|
return state;
|
|
1148
1160
|
}
|
|
1149
|
-
if (
|
|
1161
|
+
if (event.type === stopSignalType) {
|
|
1150
1162
|
state.canceled = true;
|
|
1151
1163
|
if (isFunction(state.dispose)) {
|
|
1152
1164
|
state.dispose();
|
|
1153
1165
|
}
|
|
1154
1166
|
return state;
|
|
1155
1167
|
}
|
|
1156
|
-
if (isSignal(
|
|
1168
|
+
if (isSignal(event.type)) {
|
|
1157
1169
|
// TODO: unrecognized signal
|
|
1158
1170
|
return state;
|
|
1159
1171
|
}
|
|
1160
|
-
|
|
1161
|
-
if (!isSignal(plainEvent.type)) {
|
|
1172
|
+
if (!isSignal(event.type)) {
|
|
1162
1173
|
state.receivers.forEach(function (receiver) {
|
|
1163
|
-
return receiver(
|
|
1174
|
+
return receiver(event);
|
|
1164
1175
|
});
|
|
1165
1176
|
}
|
|
1166
1177
|
return state;
|
|
@@ -1231,6 +1242,12 @@ function toActorRef(actorRefLike) {
|
|
|
1231
1242
|
return void 0;
|
|
1232
1243
|
}), _objectSpread2$1), actorRefLike);
|
|
1233
1244
|
}
|
|
1245
|
+
var emptyBehavior = fromTransition(function (_) {
|
|
1246
|
+
return undefined;
|
|
1247
|
+
}, undefined);
|
|
1248
|
+
function createEmptyActor() {
|
|
1249
|
+
return interpret(emptyBehavior);
|
|
1250
|
+
}
|
|
1234
1251
|
|
|
1235
1252
|
function createSystem() {
|
|
1236
1253
|
var sessionIdCounter = 0;
|
|
@@ -1268,6 +1285,7 @@ function createSystem() {
|
|
|
1268
1285
|
return system;
|
|
1269
1286
|
}
|
|
1270
1287
|
|
|
1288
|
+
exports.ActorStatus = void 0;
|
|
1271
1289
|
(function (ActorStatus) {
|
|
1272
1290
|
ActorStatus[ActorStatus["NotStarted"] = 0] = "NotStarted";
|
|
1273
1291
|
ActorStatus[ActorStatus["Running"] = 1] = "Running";
|
|
@@ -1423,9 +1441,9 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1423
1441
|
_step;
|
|
1424
1442
|
try {
|
|
1425
1443
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1426
|
-
var
|
|
1427
|
-
var
|
|
1428
|
-
(
|
|
1444
|
+
var _observer$next;
|
|
1445
|
+
var _observer = _step.value;
|
|
1446
|
+
(_observer$next = _observer.next) === null || _observer$next === void 0 ? void 0 : _observer$next.call(_observer, snapshot);
|
|
1429
1447
|
}
|
|
1430
1448
|
} catch (err) {
|
|
1431
1449
|
_iterator.e(err);
|
|
@@ -1435,30 +1453,15 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1435
1453
|
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);
|
|
1436
1454
|
switch (status === null || status === void 0 ? void 0 : status.status) {
|
|
1437
1455
|
case 'done':
|
|
1438
|
-
this._doneEvent = doneInvoke(this.id, status.data);
|
|
1439
|
-
(_this$_parent = this._parent) === null || _this$_parent === void 0 ? void 0 : _this$_parent.send(toSCXMLEvent(this._doneEvent, {
|
|
1440
|
-
origin: this,
|
|
1441
|
-
invokeid: this.id
|
|
1442
|
-
}));
|
|
1443
1456
|
this._stopProcedure();
|
|
1457
|
+
this._doneEvent = doneInvoke(this.id, status.data);
|
|
1458
|
+
(_this$_parent = this._parent) === null || _this$_parent === void 0 ? void 0 : _this$_parent.send(this._doneEvent);
|
|
1459
|
+
this._complete();
|
|
1444
1460
|
break;
|
|
1445
1461
|
case 'error':
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
var _iterator2 = _createForOfIteratorHelper(this.observers),
|
|
1450
|
-
_step2;
|
|
1451
|
-
try {
|
|
1452
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
1453
|
-
var _observer$error;
|
|
1454
|
-
var _observer = _step2.value;
|
|
1455
|
-
(_observer$error = _observer.error) === null || _observer$error === void 0 ? void 0 : _observer$error.call(_observer, status.data);
|
|
1456
|
-
}
|
|
1457
|
-
} catch (err) {
|
|
1458
|
-
_iterator2.e(err);
|
|
1459
|
-
} finally {
|
|
1460
|
-
_iterator2.f();
|
|
1461
|
-
}
|
|
1462
|
+
this._stopProcedure();
|
|
1463
|
+
(_this$_parent2 = this._parent) === null || _this$_parent2 === void 0 ? void 0 : _this$_parent2.send(error(this.id, status.data));
|
|
1464
|
+
this._error(status.data);
|
|
1462
1465
|
break;
|
|
1463
1466
|
}
|
|
1464
1467
|
}
|
|
@@ -1537,15 +1540,16 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1537
1540
|
try {
|
|
1538
1541
|
var nextState = this.behavior.transition(this._state, event, this._actorContext);
|
|
1539
1542
|
this.update(nextState);
|
|
1540
|
-
if (event.
|
|
1543
|
+
if (event.type === stopSignalType) {
|
|
1541
1544
|
this._stopProcedure();
|
|
1545
|
+
this._complete();
|
|
1542
1546
|
}
|
|
1543
1547
|
} catch (err) {
|
|
1544
1548
|
// TODO: properly handle errors
|
|
1545
1549
|
if (this.observers.size > 0) {
|
|
1546
1550
|
this.observers.forEach(function (observer) {
|
|
1547
|
-
var _observer$
|
|
1548
|
-
(_observer$
|
|
1551
|
+
var _observer$error;
|
|
1552
|
+
(_observer$error = observer.error) === null || _observer$error === void 0 ? void 0 : _observer$error.call(observer, err);
|
|
1549
1553
|
});
|
|
1550
1554
|
this.stop();
|
|
1551
1555
|
} else {
|
|
@@ -1564,9 +1568,9 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1564
1568
|
this.status = exports.ActorStatus.Stopped;
|
|
1565
1569
|
return this;
|
|
1566
1570
|
}
|
|
1567
|
-
this.mailbox.enqueue(
|
|
1571
|
+
this.mailbox.enqueue({
|
|
1568
1572
|
type: stopSignalType
|
|
1569
|
-
})
|
|
1573
|
+
});
|
|
1570
1574
|
return this;
|
|
1571
1575
|
}
|
|
1572
1576
|
|
|
@@ -1584,13 +1588,31 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1584
1588
|
}, {
|
|
1585
1589
|
key: "_complete",
|
|
1586
1590
|
value: function _complete() {
|
|
1591
|
+
var _iterator2 = _createForOfIteratorHelper(this.observers),
|
|
1592
|
+
_step2;
|
|
1593
|
+
try {
|
|
1594
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
1595
|
+
var _observer2$complete;
|
|
1596
|
+
var _observer2 = _step2.value;
|
|
1597
|
+
(_observer2$complete = _observer2.complete) === null || _observer2$complete === void 0 ? void 0 : _observer2$complete.call(_observer2);
|
|
1598
|
+
}
|
|
1599
|
+
} catch (err) {
|
|
1600
|
+
_iterator2.e(err);
|
|
1601
|
+
} finally {
|
|
1602
|
+
_iterator2.f();
|
|
1603
|
+
}
|
|
1604
|
+
this.observers.clear();
|
|
1605
|
+
}
|
|
1606
|
+
}, {
|
|
1607
|
+
key: "_error",
|
|
1608
|
+
value: function _error(data) {
|
|
1587
1609
|
var _iterator3 = _createForOfIteratorHelper(this.observers),
|
|
1588
1610
|
_step3;
|
|
1589
1611
|
try {
|
|
1590
1612
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
1591
|
-
var _observer3$
|
|
1613
|
+
var _observer3$error;
|
|
1592
1614
|
var _observer3 = _step3.value;
|
|
1593
|
-
(_observer3$
|
|
1615
|
+
(_observer3$error = _observer3.error) === null || _observer3$error === void 0 ? void 0 : _observer3$error.call(_observer3, data);
|
|
1594
1616
|
}
|
|
1595
1617
|
} catch (err) {
|
|
1596
1618
|
_iterator3.e(err);
|
|
@@ -1602,7 +1624,6 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1602
1624
|
}, {
|
|
1603
1625
|
key: "_stopProcedure",
|
|
1604
1626
|
value: function _stopProcedure() {
|
|
1605
|
-
this._complete();
|
|
1606
1627
|
if (this.status !== exports.ActorStatus.Running) {
|
|
1607
1628
|
// Interpreter already stopped; do nothing
|
|
1608
1629
|
return this;
|
|
@@ -1634,16 +1655,23 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1634
1655
|
}, {
|
|
1635
1656
|
key: "send",
|
|
1636
1657
|
value: function send(event) {
|
|
1637
|
-
|
|
1658
|
+
if (typeof event === 'string') {
|
|
1659
|
+
throw new Error("Only event objects may be sent to actors; use .send({ type: \"".concat(event, "\" }) instead"));
|
|
1660
|
+
}
|
|
1638
1661
|
if (this.status === exports.ActorStatus.Stopped) {
|
|
1662
|
+
// do nothing
|
|
1663
|
+
if (!dev_dist_xstateDev.IS_PRODUCTION) {
|
|
1664
|
+
var eventString = JSON.stringify(event);
|
|
1665
|
+
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));
|
|
1666
|
+
}
|
|
1639
1667
|
return;
|
|
1640
1668
|
}
|
|
1641
1669
|
if (this.status !== exports.ActorStatus.Running && !this.options.deferEvents) {
|
|
1642
|
-
throw new Error("Event \"".concat(
|
|
1670
|
+
throw new Error("Event \"".concat(event.type, "\" was sent to uninitialized actor \"").concat(this.id
|
|
1643
1671
|
// tslint:disable-next-line:max-line-length
|
|
1644
|
-
, "\". Make sure .start() is called for this actor, or set { deferEvents: true } in the actor options.\nEvent: ").concat(JSON.stringify(
|
|
1672
|
+
, "\". Make sure .start() is called for this actor, or set { deferEvents: true } in the actor options.\nEvent: ").concat(JSON.stringify(event)));
|
|
1645
1673
|
}
|
|
1646
|
-
this.mailbox.enqueue(
|
|
1674
|
+
this.mailbox.enqueue(event);
|
|
1647
1675
|
}
|
|
1648
1676
|
|
|
1649
1677
|
// TODO: make private (and figure out a way to do this within the machine)
|
|
@@ -1653,9 +1681,9 @@ var Interpreter = /*#__PURE__*/function () {
|
|
|
1653
1681
|
var _this4 = this;
|
|
1654
1682
|
this.delayedEventsMap[sendAction.params.id] = this.clock.setTimeout(function () {
|
|
1655
1683
|
if ('to' in sendAction.params && sendAction.params.to) {
|
|
1656
|
-
sendAction.params.to.send(sendAction.params.
|
|
1684
|
+
sendAction.params.to.send(sendAction.params.event);
|
|
1657
1685
|
} else {
|
|
1658
|
-
_this4.send(sendAction.params.
|
|
1686
|
+
_this4.send(sendAction.params.event);
|
|
1659
1687
|
}
|
|
1660
1688
|
}, sendAction.params.delay);
|
|
1661
1689
|
}
|
|
@@ -1721,18 +1749,18 @@ function interpret(behavior, options) {
|
|
|
1721
1749
|
* @param actorRef The actor to stop.
|
|
1722
1750
|
*/
|
|
1723
1751
|
|
|
1724
|
-
function stop
|
|
1752
|
+
function stop(actorRef) {
|
|
1725
1753
|
var actor = actorRef;
|
|
1726
1754
|
return createDynamicAction({
|
|
1727
|
-
type: stop,
|
|
1755
|
+
type: stop$1,
|
|
1728
1756
|
params: {
|
|
1729
1757
|
actor: actor
|
|
1730
1758
|
}
|
|
1731
|
-
}, function (
|
|
1759
|
+
}, function (event, _ref) {
|
|
1732
1760
|
var state = _ref.state;
|
|
1733
1761
|
var actorRefOrString = isFunction(actor) ? actor({
|
|
1734
1762
|
context: state.context,
|
|
1735
|
-
event:
|
|
1763
|
+
event: event
|
|
1736
1764
|
}) : actor;
|
|
1737
1765
|
var actorRef = typeof actorRefOrString === 'string' ? state.children[actorRefOrString] : actorRefOrString;
|
|
1738
1766
|
return [state, {
|
|
@@ -1774,23 +1802,22 @@ var defaultLogExpr = function defaultLogExpr(_ref) {
|
|
|
1774
1802
|
* @param label The label to give to the logged expression.
|
|
1775
1803
|
*/
|
|
1776
1804
|
|
|
1777
|
-
function log
|
|
1805
|
+
function log() {
|
|
1778
1806
|
var expr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultLogExpr;
|
|
1779
1807
|
var label = arguments.length > 1 ? arguments[1] : undefined;
|
|
1780
1808
|
return createDynamicAction({
|
|
1781
|
-
type: log,
|
|
1809
|
+
type: log$1,
|
|
1782
1810
|
params: {
|
|
1783
1811
|
label: label,
|
|
1784
1812
|
expr: expr
|
|
1785
1813
|
}
|
|
1786
|
-
}, function (
|
|
1814
|
+
}, function (event, _ref2) {
|
|
1787
1815
|
var _actorContext$self;
|
|
1788
1816
|
var state = _ref2.state,
|
|
1789
1817
|
actorContext = _ref2.actorContext;
|
|
1790
1818
|
var resolvedValue = typeof expr === 'function' ? expr({
|
|
1791
1819
|
context: state.context,
|
|
1792
|
-
event:
|
|
1793
|
-
_event: _event,
|
|
1820
|
+
event: event,
|
|
1794
1821
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : {},
|
|
1795
1822
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
1796
1823
|
}) : expr;
|
|
@@ -1821,20 +1848,19 @@ function log$1() {
|
|
|
1821
1848
|
* @param sendId The `id` of the `send(...)` action to cancel.
|
|
1822
1849
|
*/
|
|
1823
1850
|
|
|
1824
|
-
function cancel
|
|
1851
|
+
function cancel(sendId) {
|
|
1825
1852
|
return createDynamicAction({
|
|
1826
|
-
type: cancel,
|
|
1853
|
+
type: cancel$1,
|
|
1827
1854
|
params: {
|
|
1828
1855
|
sendId: sendId
|
|
1829
1856
|
}
|
|
1830
|
-
}, function (
|
|
1857
|
+
}, function (event, _ref) {
|
|
1831
1858
|
var _actorContext$self;
|
|
1832
1859
|
var state = _ref.state,
|
|
1833
1860
|
actorContext = _ref.actorContext;
|
|
1834
1861
|
var resolvedSendId = isFunction(sendId) ? sendId({
|
|
1835
1862
|
context: state.context,
|
|
1836
|
-
event:
|
|
1837
|
-
_event: _event,
|
|
1863
|
+
event: event,
|
|
1838
1864
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : {},
|
|
1839
1865
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
1840
1866
|
}) : sendId;
|
|
@@ -1920,9 +1946,9 @@ function not(guard) {
|
|
|
1920
1946
|
var evaluate = _ref2.evaluate,
|
|
1921
1947
|
guard = _ref2.guard,
|
|
1922
1948
|
context = _ref2.context,
|
|
1923
|
-
|
|
1949
|
+
event = _ref2.event,
|
|
1924
1950
|
state = _ref2.state;
|
|
1925
|
-
return !evaluate(guard.children[0], context,
|
|
1951
|
+
return !evaluate(guard.children[0], context, event, state);
|
|
1926
1952
|
}
|
|
1927
1953
|
};
|
|
1928
1954
|
}
|
|
@@ -1939,10 +1965,10 @@ function and(guards) {
|
|
|
1939
1965
|
var evaluate = _ref3.evaluate,
|
|
1940
1966
|
guard = _ref3.guard,
|
|
1941
1967
|
context = _ref3.context,
|
|
1942
|
-
|
|
1968
|
+
event = _ref3.event,
|
|
1943
1969
|
state = _ref3.state;
|
|
1944
1970
|
return guard.children.every(function (childGuard) {
|
|
1945
|
-
return evaluate(childGuard, context,
|
|
1971
|
+
return evaluate(childGuard, context, event, state);
|
|
1946
1972
|
});
|
|
1947
1973
|
}
|
|
1948
1974
|
};
|
|
@@ -1960,15 +1986,15 @@ function or(guards) {
|
|
|
1960
1986
|
var evaluate = _ref4.evaluate,
|
|
1961
1987
|
guard = _ref4.guard,
|
|
1962
1988
|
context = _ref4.context,
|
|
1963
|
-
|
|
1989
|
+
event = _ref4.event,
|
|
1964
1990
|
state = _ref4.state;
|
|
1965
1991
|
return guard.children.some(function (childGuard) {
|
|
1966
|
-
return evaluate(childGuard, context,
|
|
1992
|
+
return evaluate(childGuard, context, event, state);
|
|
1967
1993
|
});
|
|
1968
1994
|
}
|
|
1969
1995
|
};
|
|
1970
1996
|
}
|
|
1971
|
-
function evaluateGuard(guard, context,
|
|
1997
|
+
function evaluateGuard(guard, context, event, state) {
|
|
1972
1998
|
var _machine$options$guar, _machine$options, _machine$options$guar2;
|
|
1973
1999
|
var machine = state.machine;
|
|
1974
2000
|
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;
|
|
@@ -1977,10 +2003,9 @@ function evaluateGuard(guard, context, _event, state) {
|
|
|
1977
2003
|
}
|
|
1978
2004
|
return predicate({
|
|
1979
2005
|
context: context,
|
|
1980
|
-
event:
|
|
2006
|
+
event: event,
|
|
1981
2007
|
state: state,
|
|
1982
2008
|
guard: guard,
|
|
1983
|
-
_event: _event,
|
|
1984
2009
|
evaluate: evaluateGuard
|
|
1985
2010
|
});
|
|
1986
2011
|
}
|
|
@@ -2015,12 +2040,12 @@ function toGuardDefinition(guardConfig, getPredicate) {
|
|
|
2015
2040
|
};
|
|
2016
2041
|
}
|
|
2017
2042
|
|
|
2018
|
-
function getOutput(configuration, context,
|
|
2043
|
+
function getOutput(configuration, context, event) {
|
|
2019
2044
|
var machine = configuration[0].machine;
|
|
2020
2045
|
var finalChildStateNode = configuration.find(function (stateNode) {
|
|
2021
2046
|
return stateNode.type === 'final' && stateNode.parent === machine.root;
|
|
2022
2047
|
});
|
|
2023
|
-
return finalChildStateNode && finalChildStateNode.output ? mapContext(finalChildStateNode.output, context,
|
|
2048
|
+
return finalChildStateNode && finalChildStateNode.output ? mapContext(finalChildStateNode.output, context, event) : undefined;
|
|
2024
2049
|
}
|
|
2025
2050
|
var isAtomicStateNode = function isAtomicStateNode(stateNode) {
|
|
2026
2051
|
return stateNode.type === 'atomic' || stateNode.type === 'final';
|
|
@@ -2184,7 +2209,6 @@ var isStateId = function isStateId(str) {
|
|
|
2184
2209
|
return str[0] === STATE_IDENTIFIER;
|
|
2185
2210
|
};
|
|
2186
2211
|
function getCandidates(stateNode, receivedEventType) {
|
|
2187
|
-
var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
2188
2212
|
var candidates = stateNode.transitions.filter(function (transition) {
|
|
2189
2213
|
var eventType = transition.eventType;
|
|
2190
2214
|
// First, check the trivial case: event names are exactly equal
|
|
@@ -2197,7 +2221,7 @@ function getCandidates(stateNode, receivedEventType) {
|
|
|
2197
2221
|
if (eventType === WILDCARD) {
|
|
2198
2222
|
return true;
|
|
2199
2223
|
}
|
|
2200
|
-
if (!
|
|
2224
|
+
if (!eventType.endsWith('.*')) {
|
|
2201
2225
|
return false;
|
|
2202
2226
|
}
|
|
2203
2227
|
var partialEventTokens = eventType.split('.');
|
|
@@ -2228,13 +2252,13 @@ function getDelayedTransitions(stateNode) {
|
|
|
2228
2252
|
}
|
|
2229
2253
|
var mutateEntryExit = function mutateEntryExit(delay, i) {
|
|
2230
2254
|
var delayRef = isFunction(delay) ? "".concat(stateNode.id, ":delay[").concat(i, "]") : delay;
|
|
2231
|
-
var eventType = after
|
|
2232
|
-
stateNode.entry.push(
|
|
2255
|
+
var eventType = after(delayRef, stateNode.id);
|
|
2256
|
+
stateNode.entry.push(raise({
|
|
2233
2257
|
type: eventType
|
|
2234
2258
|
}, {
|
|
2235
2259
|
delay: delay
|
|
2236
2260
|
}));
|
|
2237
|
-
stateNode.exit.push(cancel
|
|
2261
|
+
stateNode.exit.push(cancel(eventType));
|
|
2238
2262
|
return eventType;
|
|
2239
2263
|
};
|
|
2240
2264
|
var delayedTransitions = isArray(afterConfig) ? afterConfig.map(function (transition, i) {
|
|
@@ -2264,9 +2288,9 @@ function getDelayedTransitions(stateNode) {
|
|
|
2264
2288
|
});
|
|
2265
2289
|
}
|
|
2266
2290
|
function formatTransition(stateNode, transitionConfig) {
|
|
2267
|
-
var _transitionConfig$
|
|
2291
|
+
var _transitionConfig$ree;
|
|
2268
2292
|
var normalizedTarget = normalizeTarget(transitionConfig.target);
|
|
2269
|
-
var
|
|
2293
|
+
var reenter = (_transitionConfig$ree = transitionConfig.reenter) !== null && _transitionConfig$ree !== void 0 ? _transitionConfig$ree : false;
|
|
2270
2294
|
var guards = stateNode.machine.options.guards;
|
|
2271
2295
|
var target = resolveTarget(stateNode, normalizedTarget);
|
|
2272
2296
|
var transition = _objectSpread2(_objectSpread2({}, transitionConfig), {}, {
|
|
@@ -2276,7 +2300,7 @@ function formatTransition(stateNode, transitionConfig) {
|
|
|
2276
2300
|
}) : undefined,
|
|
2277
2301
|
target: target,
|
|
2278
2302
|
source: stateNode,
|
|
2279
|
-
|
|
2303
|
+
reenter: reenter,
|
|
2280
2304
|
eventType: transitionConfig.event,
|
|
2281
2305
|
toJSON: function toJSON() {
|
|
2282
2306
|
return _objectSpread2(_objectSpread2({}, transition), {}, {
|
|
@@ -2363,7 +2387,7 @@ function formatInitialTransition(stateNode, _target) {
|
|
|
2363
2387
|
source: stateNode,
|
|
2364
2388
|
actions: [],
|
|
2365
2389
|
eventType: null,
|
|
2366
|
-
|
|
2390
|
+
reenter: false,
|
|
2367
2391
|
target: resolvedTarget,
|
|
2368
2392
|
toJSON: function toJSON() {
|
|
2369
2393
|
return _objectSpread2(_objectSpread2({}, transition), {}, {
|
|
@@ -2546,24 +2570,24 @@ function getStateNodes(stateNode, state) {
|
|
|
2546
2570
|
return allSubStateNodes.concat(subStateNodes);
|
|
2547
2571
|
}, []));
|
|
2548
2572
|
}
|
|
2549
|
-
function transitionAtomicNode(stateNode, stateValue, state,
|
|
2573
|
+
function transitionAtomicNode(stateNode, stateValue, state, event) {
|
|
2550
2574
|
var childStateNode = getStateNode(stateNode, stateValue);
|
|
2551
|
-
var next = childStateNode.next(state,
|
|
2575
|
+
var next = childStateNode.next(state, event);
|
|
2552
2576
|
if (!next || !next.length) {
|
|
2553
|
-
return stateNode.next(state,
|
|
2577
|
+
return stateNode.next(state, event);
|
|
2554
2578
|
}
|
|
2555
2579
|
return next;
|
|
2556
2580
|
}
|
|
2557
|
-
function transitionCompoundNode(stateNode, stateValue, state,
|
|
2581
|
+
function transitionCompoundNode(stateNode, stateValue, state, event) {
|
|
2558
2582
|
var subStateKeys = Object.keys(stateValue);
|
|
2559
2583
|
var childStateNode = getStateNode(stateNode, subStateKeys[0]);
|
|
2560
|
-
var next = transitionNode(childStateNode, stateValue[subStateKeys[0]], state,
|
|
2584
|
+
var next = transitionNode(childStateNode, stateValue[subStateKeys[0]], state, event);
|
|
2561
2585
|
if (!next || !next.length) {
|
|
2562
|
-
return stateNode.next(state,
|
|
2586
|
+
return stateNode.next(state, event);
|
|
2563
2587
|
}
|
|
2564
2588
|
return next;
|
|
2565
2589
|
}
|
|
2566
|
-
function transitionParallelNode(stateNode, stateValue, state,
|
|
2590
|
+
function transitionParallelNode(stateNode, stateValue, state, event) {
|
|
2567
2591
|
var allInnerTransitions = [];
|
|
2568
2592
|
for (var _i3 = 0, _Object$keys2 = Object.keys(stateValue); _i3 < _Object$keys2.length; _i3++) {
|
|
2569
2593
|
var subStateKey = _Object$keys2[_i3];
|
|
@@ -2572,29 +2596,29 @@ function transitionParallelNode(stateNode, stateValue, state, _event) {
|
|
|
2572
2596
|
continue;
|
|
2573
2597
|
}
|
|
2574
2598
|
var subStateNode = getStateNode(stateNode, subStateKey);
|
|
2575
|
-
var innerTransitions = transitionNode(subStateNode, subStateValue, state,
|
|
2599
|
+
var innerTransitions = transitionNode(subStateNode, subStateValue, state, event);
|
|
2576
2600
|
if (innerTransitions) {
|
|
2577
2601
|
allInnerTransitions.push.apply(allInnerTransitions, _toConsumableArray(innerTransitions));
|
|
2578
2602
|
}
|
|
2579
2603
|
}
|
|
2580
2604
|
if (!allInnerTransitions.length) {
|
|
2581
|
-
return stateNode.next(state,
|
|
2605
|
+
return stateNode.next(state, event);
|
|
2582
2606
|
}
|
|
2583
2607
|
return allInnerTransitions;
|
|
2584
2608
|
}
|
|
2585
|
-
function transitionNode(stateNode, stateValue, state,
|
|
2609
|
+
function transitionNode(stateNode, stateValue, state, event) {
|
|
2586
2610
|
// leaf node
|
|
2587
2611
|
if (isString(stateValue)) {
|
|
2588
|
-
return transitionAtomicNode(stateNode, stateValue, state,
|
|
2612
|
+
return transitionAtomicNode(stateNode, stateValue, state, event);
|
|
2589
2613
|
}
|
|
2590
2614
|
|
|
2591
2615
|
// compound node
|
|
2592
2616
|
if (Object.keys(stateValue).length === 1) {
|
|
2593
|
-
return transitionCompoundNode(stateNode, stateValue, state,
|
|
2617
|
+
return transitionCompoundNode(stateNode, stateValue, state, event);
|
|
2594
2618
|
}
|
|
2595
2619
|
|
|
2596
2620
|
// parallel node
|
|
2597
|
-
return transitionParallelNode(stateNode, stateValue, state,
|
|
2621
|
+
return transitionParallelNode(stateNode, stateValue, state, event);
|
|
2598
2622
|
}
|
|
2599
2623
|
function getHistoryNodes(stateNode) {
|
|
2600
2624
|
return Object.keys(stateNode.states).map(function (key) {
|
|
@@ -2786,7 +2810,7 @@ function getTransitionDomain(transition, historyValue) {
|
|
|
2786
2810
|
if (!targetStates) {
|
|
2787
2811
|
return null;
|
|
2788
2812
|
}
|
|
2789
|
-
if (!transition.
|
|
2813
|
+
if (!transition.reenter && transition.source.type !== 'parallel' && targetStates.every(function (targetStateNode) {
|
|
2790
2814
|
return isDescendant(targetStateNode, transition.source);
|
|
2791
2815
|
})) {
|
|
2792
2816
|
return transition.source;
|
|
@@ -2837,7 +2861,7 @@ function computeExitSet(transitions, configuration, historyValue) {
|
|
|
2837
2861
|
* @param mutConfiguration
|
|
2838
2862
|
*/
|
|
2839
2863
|
|
|
2840
|
-
function microstep(transitions, currentState, actorCtx,
|
|
2864
|
+
function microstep(transitions, currentState, actorCtx, event) {
|
|
2841
2865
|
var machine = currentState.machine;
|
|
2842
2866
|
// Transition will "apply" if:
|
|
2843
2867
|
// - the state node is the initial state (there is no current state)
|
|
@@ -2846,7 +2870,7 @@ function microstep(transitions, currentState, actorCtx, scxmlEvent) {
|
|
|
2846
2870
|
var mutConfiguration = new Set(currentState.configuration);
|
|
2847
2871
|
if (!currentState._initial && !willTransition) {
|
|
2848
2872
|
var inertState = cloneState(currentState, {
|
|
2849
|
-
|
|
2873
|
+
event: event,
|
|
2850
2874
|
actions: [],
|
|
2851
2875
|
transitions: []
|
|
2852
2876
|
});
|
|
@@ -2856,11 +2880,11 @@ function microstep(transitions, currentState, actorCtx, scxmlEvent) {
|
|
|
2856
2880
|
var microstate = microstepProcedure(currentState._initial ? [{
|
|
2857
2881
|
target: _toConsumableArray(currentState.configuration).filter(isAtomicStateNode),
|
|
2858
2882
|
source: machine.root,
|
|
2859
|
-
|
|
2883
|
+
reenter: true,
|
|
2860
2884
|
actions: [],
|
|
2861
2885
|
eventType: null,
|
|
2862
2886
|
toJSON: null // TODO: fix
|
|
2863
|
-
}] : transitions, currentState, mutConfiguration,
|
|
2887
|
+
}] : transitions, currentState, mutConfiguration, event, actorCtx);
|
|
2864
2888
|
var context = microstate.context,
|
|
2865
2889
|
nonRaisedActions = microstate.actions;
|
|
2866
2890
|
var children = setChildren(currentState, nonRaisedActions);
|
|
@@ -2880,12 +2904,12 @@ function setChildren(currentState, nonRaisedActions) {
|
|
|
2880
2904
|
try {
|
|
2881
2905
|
for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
|
|
2882
2906
|
var action = _step21.value;
|
|
2883
|
-
if (action.type === invoke && action.params.ref) {
|
|
2907
|
+
if (action.type === invoke$1 && action.params.ref) {
|
|
2884
2908
|
var ref = action.params.ref;
|
|
2885
2909
|
if (ref) {
|
|
2886
2910
|
children[ref.id] = ref;
|
|
2887
2911
|
}
|
|
2888
|
-
} else if (action.type === stop) {
|
|
2912
|
+
} else if (action.type === stop$1) {
|
|
2889
2913
|
var _ref = action.params.actor;
|
|
2890
2914
|
if (_ref) {
|
|
2891
2915
|
delete children[_ref.id];
|
|
@@ -2899,8 +2923,7 @@ function setChildren(currentState, nonRaisedActions) {
|
|
|
2899
2923
|
}
|
|
2900
2924
|
return children;
|
|
2901
2925
|
}
|
|
2902
|
-
function microstepProcedure(transitions, currentState, mutConfiguration,
|
|
2903
|
-
var machine = currentState.machine;
|
|
2926
|
+
function microstepProcedure(transitions, currentState, mutConfiguration, event, actorCtx) {
|
|
2904
2927
|
var actions = [];
|
|
2905
2928
|
var historyValue = _objectSpread2({}, currentState.historyValue);
|
|
2906
2929
|
var filteredTransitions = removeConflictingTransitions(transitions, mutConfiguration, historyValue);
|
|
@@ -2929,9 +2952,9 @@ function microstepProcedure(transitions, currentState, mutConfiguration, scxmlEv
|
|
|
2929
2952
|
actions.push.apply(actions, _toConsumableArray(finalActions));
|
|
2930
2953
|
}
|
|
2931
2954
|
try {
|
|
2932
|
-
var _resolveActionsAndCon = resolveActionsAndContext(actions,
|
|
2955
|
+
var _resolveActionsAndCon = resolveActionsAndContext(actions, event, currentState, actorCtx),
|
|
2933
2956
|
nextState = _resolveActionsAndCon.nextState;
|
|
2934
|
-
var output = done ? getOutput(nextConfiguration, nextState.context,
|
|
2957
|
+
var output = done ? getOutput(nextConfiguration, nextState.context, event) : undefined;
|
|
2935
2958
|
internalQueue.push.apply(internalQueue, _toConsumableArray(nextState._internalQueue));
|
|
2936
2959
|
return cloneState(currentState, {
|
|
2937
2960
|
actions: nextState.actions,
|
|
@@ -2939,7 +2962,7 @@ function microstepProcedure(transitions, currentState, mutConfiguration, scxmlEv
|
|
|
2939
2962
|
historyValue: historyValue,
|
|
2940
2963
|
_internalQueue: internalQueue,
|
|
2941
2964
|
context: nextState.context,
|
|
2942
|
-
|
|
2965
|
+
event: event,
|
|
2943
2966
|
done: done,
|
|
2944
2967
|
output: output,
|
|
2945
2968
|
children: nextState.children
|
|
@@ -2947,19 +2970,7 @@ function microstepProcedure(transitions, currentState, mutConfiguration, scxmlEv
|
|
|
2947
2970
|
} catch (e) {
|
|
2948
2971
|
// TODO: Refactor this once proper error handling is implemented.
|
|
2949
2972
|
// See https://github.com/statelyai/rfcs/pull/4
|
|
2950
|
-
|
|
2951
|
-
return cloneState(currentState, {
|
|
2952
|
-
actions: [],
|
|
2953
|
-
configuration: Array.from(mutConfiguration),
|
|
2954
|
-
historyValue: historyValue,
|
|
2955
|
-
_internalQueue: [toSCXMLEvent({
|
|
2956
|
-
type: 'error.execution'
|
|
2957
|
-
})],
|
|
2958
|
-
context: currentState.context
|
|
2959
|
-
});
|
|
2960
|
-
} else {
|
|
2961
|
-
throw e;
|
|
2962
|
-
}
|
|
2973
|
+
throw e;
|
|
2963
2974
|
}
|
|
2964
2975
|
}
|
|
2965
2976
|
function enterStates(filteredTransitions, mutConfiguration, actions, internalQueue, currentState, historyValue) {
|
|
@@ -2984,7 +2995,7 @@ function enterStates(filteredTransitions, mutConfiguration, actions, internalQue
|
|
|
2984
2995
|
try {
|
|
2985
2996
|
for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
|
|
2986
2997
|
var invokeDef = _step23.value;
|
|
2987
|
-
actions.push(invoke
|
|
2998
|
+
actions.push(invoke(invokeDef));
|
|
2988
2999
|
}
|
|
2989
3000
|
|
|
2990
3001
|
// Add entry actions
|
|
@@ -3014,14 +3025,14 @@ function enterStates(filteredTransitions, mutConfiguration, actions, internalQue
|
|
|
3014
3025
|
if (!parent.parent) {
|
|
3015
3026
|
continue;
|
|
3016
3027
|
}
|
|
3017
|
-
internalQueue.push(
|
|
3028
|
+
internalQueue.push(done(parent.id, stateNodeToEnter.output ? mapContext(stateNodeToEnter.output, currentState.context, currentState.event) : undefined));
|
|
3018
3029
|
if (parent.parent) {
|
|
3019
3030
|
var grandparent = parent.parent;
|
|
3020
3031
|
if (grandparent.type === 'parallel') {
|
|
3021
3032
|
if (getChildren(grandparent).every(function (parentNode) {
|
|
3022
3033
|
return isInFinalState(_toConsumableArray(mutConfiguration), parentNode);
|
|
3023
3034
|
})) {
|
|
3024
|
-
internalQueue.push(
|
|
3035
|
+
internalQueue.push(done(grandparent.id));
|
|
3025
3036
|
}
|
|
3026
3037
|
}
|
|
3027
3038
|
}
|
|
@@ -3294,7 +3305,7 @@ function exitStates(transitions, mutConfiguration, historyValue, actions) {
|
|
|
3294
3305
|
for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
|
|
3295
3306
|
var s = _step40.value;
|
|
3296
3307
|
actions.push.apply(actions, _toConsumableArray(s.exit.flat()).concat(_toConsumableArray(s.invoke.map(function (def) {
|
|
3297
|
-
return stop
|
|
3308
|
+
return stop(def.id);
|
|
3298
3309
|
}))));
|
|
3299
3310
|
mutConfiguration["delete"](s);
|
|
3300
3311
|
}
|
|
@@ -3304,7 +3315,7 @@ function exitStates(transitions, mutConfiguration, historyValue, actions) {
|
|
|
3304
3315
|
_iterator40.f();
|
|
3305
3316
|
}
|
|
3306
3317
|
}
|
|
3307
|
-
function resolveActionsAndContext(actions,
|
|
3318
|
+
function resolveActionsAndContext(actions, event, currentState, actorCtx) {
|
|
3308
3319
|
var machine = currentState.machine;
|
|
3309
3320
|
var resolvedActions = [];
|
|
3310
3321
|
var raiseActions = [];
|
|
@@ -3322,7 +3333,7 @@ function resolveActionsAndContext(actions, scxmlEvent, currentState, actorCtx) {
|
|
|
3322
3333
|
var executableActionObject = resolveActionObject(actionObject, machine.options.actions);
|
|
3323
3334
|
if (isDynamicAction(executableActionObject)) {
|
|
3324
3335
|
var _resolvedAction$param;
|
|
3325
|
-
var _executableActionObje = executableActionObject.resolve(
|
|
3336
|
+
var _executableActionObje = executableActionObject.resolve(event, {
|
|
3326
3337
|
state: intermediateState,
|
|
3327
3338
|
action: actionObject,
|
|
3328
3339
|
actorContext: actorCtx
|
|
@@ -3332,12 +3343,12 @@ function resolveActionsAndContext(actions, scxmlEvent, currentState, actorCtx) {
|
|
|
3332
3343
|
resolvedAction = _executableActionObje2[1];
|
|
3333
3344
|
var matchedActions = (_resolvedAction$param = resolvedAction.params) === null || _resolvedAction$param === void 0 ? void 0 : _resolvedAction$param.actions;
|
|
3334
3345
|
intermediateState = nextState;
|
|
3335
|
-
if ((resolvedAction.type === raise || resolvedAction.type === send && resolvedAction.params.internal) && typeof resolvedAction.params.delay !== 'number') {
|
|
3346
|
+
if ((resolvedAction.type === raise$1 || resolvedAction.type === send$1 && resolvedAction.params.internal) && typeof resolvedAction.params.delay !== 'number') {
|
|
3336
3347
|
raiseActions.push(resolvedAction);
|
|
3337
3348
|
}
|
|
3338
3349
|
|
|
3339
3350
|
// TODO: remove the check; just handleAction
|
|
3340
|
-
if (resolvedAction.type !== pure) {
|
|
3351
|
+
if (resolvedAction.type !== pure$1) {
|
|
3341
3352
|
handleAction(resolvedAction);
|
|
3342
3353
|
}
|
|
3343
3354
|
toActionObjects(matchedActions).forEach(resolveAction);
|
|
@@ -3361,18 +3372,21 @@ function resolveActionsAndContext(actions, scxmlEvent, currentState, actorCtx) {
|
|
|
3361
3372
|
nextState: cloneState(intermediateState, {
|
|
3362
3373
|
actions: resolvedActions,
|
|
3363
3374
|
_internalQueue: raiseActions.map(function (a) {
|
|
3364
|
-
return a.params.
|
|
3375
|
+
return a.params.event;
|
|
3365
3376
|
})
|
|
3366
3377
|
})
|
|
3367
3378
|
};
|
|
3368
3379
|
}
|
|
3369
|
-
function macrostep(state,
|
|
3380
|
+
function macrostep(state, event, actorCtx) {
|
|
3381
|
+
if (!dev_dist_xstateDev.IS_PRODUCTION && event.type === WILDCARD) {
|
|
3382
|
+
throw new Error("An event cannot have the wildcard type ('".concat(WILDCARD, "')"));
|
|
3383
|
+
}
|
|
3370
3384
|
var nextState = state;
|
|
3371
3385
|
var states = [];
|
|
3372
3386
|
|
|
3373
3387
|
// Handle stop event
|
|
3374
|
-
if (
|
|
3375
|
-
nextState = stopStep(
|
|
3388
|
+
if (event.type === stopSignalType) {
|
|
3389
|
+
nextState = stopStep(event, nextState, actorCtx);
|
|
3376
3390
|
states.push(nextState);
|
|
3377
3391
|
return {
|
|
3378
3392
|
state: nextState,
|
|
@@ -3382,9 +3396,9 @@ function macrostep(state, scxmlEvent, actorCtx) {
|
|
|
3382
3396
|
|
|
3383
3397
|
// Assume the state is at rest (no raised events)
|
|
3384
3398
|
// Determine the next state based on the next microstep
|
|
3385
|
-
if (
|
|
3386
|
-
var transitions = selectTransitions(
|
|
3387
|
-
nextState = microstep(transitions, state, actorCtx,
|
|
3399
|
+
if (event.type !== init) {
|
|
3400
|
+
var transitions = selectTransitions(event, nextState);
|
|
3401
|
+
nextState = microstep(transitions, state, actorCtx, event);
|
|
3388
3402
|
states.push(nextState);
|
|
3389
3403
|
}
|
|
3390
3404
|
while (!nextState.done) {
|
|
@@ -3416,21 +3430,21 @@ function macrostep(state, scxmlEvent, actorCtx) {
|
|
|
3416
3430
|
if (enabledTransitions.length) {
|
|
3417
3431
|
var _nextState$actions2;
|
|
3418
3432
|
var _currentActions = nextState.actions;
|
|
3419
|
-
nextState = microstep(enabledTransitions, nextState, actorCtx, nextState.
|
|
3433
|
+
nextState = microstep(enabledTransitions, nextState, actorCtx, nextState.event);
|
|
3420
3434
|
(_nextState$actions2 = nextState.actions).unshift.apply(_nextState$actions2, _toConsumableArray(_currentActions));
|
|
3421
3435
|
states.push(nextState);
|
|
3422
3436
|
}
|
|
3423
3437
|
}
|
|
3424
3438
|
if (nextState.done) {
|
|
3425
3439
|
// Perform the stop step to ensure that child actors are stopped
|
|
3426
|
-
stopStep(nextState.
|
|
3440
|
+
stopStep(nextState.event, nextState, actorCtx);
|
|
3427
3441
|
}
|
|
3428
3442
|
return {
|
|
3429
3443
|
state: nextState,
|
|
3430
3444
|
microstates: states
|
|
3431
3445
|
};
|
|
3432
3446
|
}
|
|
3433
|
-
function stopStep(
|
|
3447
|
+
function stopStep(event, nextState, actorCtx) {
|
|
3434
3448
|
var actions = [];
|
|
3435
3449
|
var _iterator43 = _createForOfIteratorHelper(nextState.configuration.sort(function (a, b) {
|
|
3436
3450
|
return b.order - a.order;
|
|
@@ -3448,14 +3462,14 @@ function stopStep(scxmlEvent, nextState, actorCtx) {
|
|
|
3448
3462
|
}
|
|
3449
3463
|
for (var _i4 = 0, _Object$values = Object.values(nextState.children); _i4 < _Object$values.length; _i4++) {
|
|
3450
3464
|
var child = _Object$values[_i4];
|
|
3451
|
-
actions.push(stop
|
|
3465
|
+
actions.push(stop(child));
|
|
3452
3466
|
}
|
|
3453
|
-
var _resolveActionsAndCon2 = resolveActionsAndContext(actions,
|
|
3467
|
+
var _resolveActionsAndCon2 = resolveActionsAndContext(actions, event, nextState, actorCtx),
|
|
3454
3468
|
stoppedState = _resolveActionsAndCon2.nextState;
|
|
3455
3469
|
return stoppedState;
|
|
3456
3470
|
}
|
|
3457
|
-
function selectTransitions(
|
|
3458
|
-
return nextState.machine.getTransitionData(nextState,
|
|
3471
|
+
function selectTransitions(event, nextState) {
|
|
3472
|
+
return nextState.machine.getTransitionData(nextState, event);
|
|
3459
3473
|
}
|
|
3460
3474
|
function selectEventlessTransitions(nextState) {
|
|
3461
3475
|
var enabledTransitionSet = new Set();
|
|
@@ -3478,7 +3492,7 @@ function selectEventlessTransitions(nextState) {
|
|
|
3478
3492
|
try {
|
|
3479
3493
|
for (_iterator46.s(); !(_step46 = _iterator46.n()).done;) {
|
|
3480
3494
|
var transition = _step46.value;
|
|
3481
|
-
if (transition.guard === undefined || evaluateGuard(transition.guard, nextState.context, nextState.
|
|
3495
|
+
if (transition.guard === undefined || evaluateGuard(transition.guard, nextState.context, nextState.event, nextState)) {
|
|
3482
3496
|
enabledTransitionSet.add(transition);
|
|
3483
3497
|
break loop;
|
|
3484
3498
|
}
|
|
@@ -3572,16 +3586,14 @@ var State = /*#__PURE__*/function () {
|
|
|
3572
3586
|
_defineProperty(this, "actions", []);
|
|
3573
3587
|
_defineProperty(this, "event", void 0);
|
|
3574
3588
|
_defineProperty(this, "_internalQueue", void 0);
|
|
3575
|
-
_defineProperty(this, "_event", void 0);
|
|
3576
3589
|
_defineProperty(this, "_initial", false);
|
|
3577
3590
|
_defineProperty(this, "changed", void 0);
|
|
3578
3591
|
_defineProperty(this, "configuration", void 0);
|
|
3579
3592
|
_defineProperty(this, "transitions", void 0);
|
|
3580
3593
|
_defineProperty(this, "children", void 0);
|
|
3581
3594
|
this.context = config.context;
|
|
3582
|
-
this._event = config._event;
|
|
3583
3595
|
this._internalQueue = (_config$_internalQueu = config._internalQueue) !== null && _config$_internalQueu !== void 0 ? _config$_internalQueu : [];
|
|
3584
|
-
this.event =
|
|
3596
|
+
this.event = config.event;
|
|
3585
3597
|
this.historyValue = config.historyValue || {};
|
|
3586
3598
|
this.actions = (_config$actions = config.actions) !== null && _config$actions !== void 0 ? _config$actions : [];
|
|
3587
3599
|
this.matches = this.matches.bind(this);
|
|
@@ -3621,11 +3633,11 @@ var State = /*#__PURE__*/function () {
|
|
|
3621
3633
|
}, {
|
|
3622
3634
|
key: "toJSON",
|
|
3623
3635
|
value: function toJSON() {
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
tags = this.tags
|
|
3627
|
-
|
|
3628
|
-
jsonValues = _objectWithoutProperties(this, _excluded);
|
|
3636
|
+
this.configuration;
|
|
3637
|
+
this.transitions;
|
|
3638
|
+
var tags = this.tags;
|
|
3639
|
+
this.machine;
|
|
3640
|
+
var jsonValues = _objectWithoutProperties(this, _excluded);
|
|
3629
3641
|
return _objectSpread2(_objectSpread2({}, jsonValues), {}, {
|
|
3630
3642
|
tags: Array.from(tags),
|
|
3631
3643
|
meta: this.meta
|
|
@@ -3663,10 +3675,10 @@ var State = /*#__PURE__*/function () {
|
|
|
3663
3675
|
}, {
|
|
3664
3676
|
key: "can",
|
|
3665
3677
|
value: function can(event) {
|
|
3666
|
-
{
|
|
3667
|
-
warn(!!this.machine);
|
|
3678
|
+
if (dev_dist_xstateDev.IS_PRODUCTION) {
|
|
3679
|
+
warn(!!this.machine, "state.can(...) used outside of a machine-created State object; this will always return false.");
|
|
3668
3680
|
}
|
|
3669
|
-
var transitionData = this.machine.getTransitionData(this,
|
|
3681
|
+
var transitionData = this.machine.getTransitionData(this, event);
|
|
3670
3682
|
return !!(transitionData !== null && transitionData !== void 0 && transitionData.length) &&
|
|
3671
3683
|
// Check that at least one transition is not forbidden
|
|
3672
3684
|
transitionData.some(function (t) {
|
|
@@ -3743,7 +3755,7 @@ var State = /*#__PURE__*/function () {
|
|
|
3743
3755
|
return new State({
|
|
3744
3756
|
value: stateValue.value,
|
|
3745
3757
|
context: context,
|
|
3746
|
-
|
|
3758
|
+
event: stateValue.event,
|
|
3747
3759
|
actions: [],
|
|
3748
3760
|
meta: {},
|
|
3749
3761
|
configuration: [],
|
|
@@ -3754,13 +3766,13 @@ var State = /*#__PURE__*/function () {
|
|
|
3754
3766
|
}
|
|
3755
3767
|
return stateValue;
|
|
3756
3768
|
}
|
|
3757
|
-
var
|
|
3769
|
+
var event = createInitEvent({}); // TODO: fix
|
|
3758
3770
|
|
|
3759
3771
|
var configuration = getConfiguration(getStateNodes(machine.root, stateValue));
|
|
3760
3772
|
return new State({
|
|
3761
3773
|
value: stateValue,
|
|
3762
3774
|
context: context,
|
|
3763
|
-
|
|
3775
|
+
event: event,
|
|
3764
3776
|
actions: [],
|
|
3765
3777
|
meta: undefined,
|
|
3766
3778
|
configuration: Array.from(configuration),
|
|
@@ -3776,11 +3788,11 @@ function cloneState(state) {
|
|
|
3776
3788
|
return new State(_objectSpread2(_objectSpread2({}, state), config), state.machine);
|
|
3777
3789
|
}
|
|
3778
3790
|
function getPersistedState(state) {
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
children = state.children,
|
|
3791
|
+
state.configuration;
|
|
3792
|
+
state.transitions;
|
|
3793
|
+
state.tags;
|
|
3794
|
+
state.machine;
|
|
3795
|
+
var children = state.children,
|
|
3784
3796
|
jsonValues = _objectWithoutProperties(state, _excluded2);
|
|
3785
3797
|
var childrenJson = {};
|
|
3786
3798
|
for (var id in children) {
|
|
@@ -3795,14 +3807,14 @@ function getPersistedState(state) {
|
|
|
3795
3807
|
});
|
|
3796
3808
|
}
|
|
3797
3809
|
|
|
3798
|
-
function invoke
|
|
3810
|
+
function invoke(invokeDef) {
|
|
3799
3811
|
return createDynamicAction({
|
|
3800
|
-
type: invoke,
|
|
3812
|
+
type: invoke$1,
|
|
3801
3813
|
params: invokeDef
|
|
3802
|
-
}, function (
|
|
3814
|
+
}, function (event, _ref) {
|
|
3803
3815
|
var state = _ref.state,
|
|
3804
3816
|
actorContext = _ref.actorContext;
|
|
3805
|
-
var type = invoke;
|
|
3817
|
+
var type = invoke$1;
|
|
3806
3818
|
var id = invokeDef.id,
|
|
3807
3819
|
src = invokeDef.src;
|
|
3808
3820
|
var resolvedInvokeAction;
|
|
@@ -3829,7 +3841,7 @@ function invoke$1(invokeDef) {
|
|
|
3829
3841
|
systemId: invokeDef.systemId,
|
|
3830
3842
|
input: typeof input === 'function' ? input({
|
|
3831
3843
|
context: state.context,
|
|
3832
|
-
event:
|
|
3844
|
+
event: event,
|
|
3833
3845
|
self: actorContext === null || actorContext === void 0 ? void 0 : actorContext.self
|
|
3834
3846
|
}) : input
|
|
3835
3847
|
});
|
|
@@ -3861,7 +3873,7 @@ function invoke$1(invokeDef) {
|
|
|
3861
3873
|
var _actorRef$start;
|
|
3862
3874
|
(_actorRef$start = actorRef.start) === null || _actorRef$start === void 0 ? void 0 : _actorRef$start.call(actorRef);
|
|
3863
3875
|
} catch (err) {
|
|
3864
|
-
parent.send(error
|
|
3876
|
+
parent.send(error(id, err));
|
|
3865
3877
|
return;
|
|
3866
3878
|
}
|
|
3867
3879
|
});
|
|
@@ -3870,7 +3882,7 @@ function invoke$1(invokeDef) {
|
|
|
3870
3882
|
});
|
|
3871
3883
|
}
|
|
3872
3884
|
|
|
3873
|
-
function createSpawner(self, machine, context,
|
|
3885
|
+
function createSpawner(self, machine, context, event, mutCapturedActions) {
|
|
3874
3886
|
return function (src) {
|
|
3875
3887
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3876
3888
|
if (isString(src)) {
|
|
@@ -3886,11 +3898,11 @@ function createSpawner(self, machine, context, _event, mutCapturedActions) {
|
|
|
3886
3898
|
parent: self,
|
|
3887
3899
|
input: typeof input === 'function' ? input({
|
|
3888
3900
|
context: context,
|
|
3889
|
-
event:
|
|
3901
|
+
event: event,
|
|
3890
3902
|
self: self
|
|
3891
3903
|
}) : input
|
|
3892
3904
|
});
|
|
3893
|
-
mutCapturedActions.push(invoke
|
|
3905
|
+
mutCapturedActions.push(invoke({
|
|
3894
3906
|
id: actorRef.id,
|
|
3895
3907
|
// @ts-ignore TODO: fix types
|
|
3896
3908
|
src: actorRef,
|
|
@@ -3911,7 +3923,7 @@ function createSpawner(self, machine, context, _event, mutCapturedActions) {
|
|
|
3911
3923
|
parent: self,
|
|
3912
3924
|
input: options.input
|
|
3913
3925
|
});
|
|
3914
|
-
mutCapturedActions.push(invoke
|
|
3926
|
+
mutCapturedActions.push(invoke({
|
|
3915
3927
|
// @ts-ignore TODO: fix types
|
|
3916
3928
|
src: _actorRef,
|
|
3917
3929
|
ref: _actorRef,
|
|
@@ -3929,13 +3941,13 @@ function createSpawner(self, machine, context, _event, mutCapturedActions) {
|
|
|
3929
3941
|
*
|
|
3930
3942
|
* @param assignment An object that represents the partial context to update.
|
|
3931
3943
|
*/
|
|
3932
|
-
function assign
|
|
3944
|
+
function assign(assignment) {
|
|
3933
3945
|
return createDynamicAction({
|
|
3934
|
-
type: assign,
|
|
3946
|
+
type: assign$1,
|
|
3935
3947
|
params: {
|
|
3936
3948
|
assignment: assignment
|
|
3937
3949
|
}
|
|
3938
|
-
}, function (
|
|
3950
|
+
}, function (event, _ref) {
|
|
3939
3951
|
var _actorContext$self;
|
|
3940
3952
|
var state = _ref.state,
|
|
3941
3953
|
action = _ref.action,
|
|
@@ -3946,10 +3958,9 @@ function assign$1(assignment) {
|
|
|
3946
3958
|
}
|
|
3947
3959
|
var args = {
|
|
3948
3960
|
context: state.context,
|
|
3949
|
-
event:
|
|
3961
|
+
event: event,
|
|
3950
3962
|
action: action,
|
|
3951
|
-
|
|
3952
|
-
spawn: createSpawner(actorContext === null || actorContext === void 0 ? void 0 : actorContext.self, state.machine, state.context, _event, capturedActions),
|
|
3963
|
+
spawn: createSpawner(actorContext === null || actorContext === void 0 ? void 0 : actorContext.self, state.machine, state.context, event, capturedActions),
|
|
3953
3964
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : {},
|
|
3954
3965
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
3955
3966
|
};
|
|
@@ -3967,7 +3978,7 @@ function assign$1(assignment) {
|
|
|
3967
3978
|
return [cloneState(state, {
|
|
3968
3979
|
context: updatedContext
|
|
3969
3980
|
}), {
|
|
3970
|
-
type: assign,
|
|
3981
|
+
type: assign$1,
|
|
3971
3982
|
params: {
|
|
3972
3983
|
context: updatedContext,
|
|
3973
3984
|
actions: capturedActions
|
|
@@ -3983,15 +3994,15 @@ function assign$1(assignment) {
|
|
|
3983
3994
|
* @param eventType The event to raise.
|
|
3984
3995
|
*/
|
|
3985
3996
|
|
|
3986
|
-
function raise
|
|
3997
|
+
function raise(eventOrExpr, options) {
|
|
3987
3998
|
return createDynamicAction({
|
|
3988
|
-
type: raise,
|
|
3999
|
+
type: raise$1,
|
|
3989
4000
|
params: {
|
|
3990
4001
|
delay: options ? options.delay : undefined,
|
|
3991
4002
|
event: eventOrExpr,
|
|
3992
4003
|
id: options && options.id !== undefined ? options.id : typeof eventOrExpr === 'function' ? eventOrExpr.name : eventOrExpr.type
|
|
3993
4004
|
}
|
|
3994
|
-
}, function (
|
|
4005
|
+
}, function (event, _ref) {
|
|
3995
4006
|
var _actorContext$self;
|
|
3996
4007
|
var state = _ref.state,
|
|
3997
4008
|
actorContext = _ref.actorContext;
|
|
@@ -4002,15 +4013,17 @@ function raise$1(eventOrExpr, options) {
|
|
|
4002
4013
|
};
|
|
4003
4014
|
var args = {
|
|
4004
4015
|
context: state.context,
|
|
4005
|
-
event:
|
|
4006
|
-
_event: _event,
|
|
4016
|
+
event: event,
|
|
4007
4017
|
self: (_actorContext$self = actorContext === null || actorContext === void 0 ? void 0 : actorContext.self) !== null && _actorContext$self !== void 0 ? _actorContext$self : {},
|
|
4008
4018
|
system: actorContext === null || actorContext === void 0 ? void 0 : actorContext.system
|
|
4009
4019
|
};
|
|
4010
4020
|
var delaysMap = state.machine.options.delays;
|
|
4011
4021
|
|
|
4012
4022
|
// TODO: helper function for resolving Expr
|
|
4013
|
-
|
|
4023
|
+
if (typeof eventOrExpr === 'string') {
|
|
4024
|
+
throw new Error("Only event objects may be used with raise; use raise({ type: \"".concat(eventOrExpr, "\" }) instead"));
|
|
4025
|
+
}
|
|
4026
|
+
var resolvedEvent = typeof eventOrExpr === 'function' ? eventOrExpr(args) : eventOrExpr;
|
|
4014
4027
|
var resolvedDelay;
|
|
4015
4028
|
if (typeof params.delay === 'string') {
|
|
4016
4029
|
var configDelay = delaysMap && delaysMap[params.delay];
|
|
@@ -4019,10 +4032,9 @@ function raise$1(eventOrExpr, options) {
|
|
|
4019
4032
|
resolvedDelay = typeof params.delay === 'function' ? params.delay(args) : params.delay;
|
|
4020
4033
|
}
|
|
4021
4034
|
var resolvedAction = {
|
|
4022
|
-
type: raise,
|
|
4035
|
+
type: raise$1,
|
|
4023
4036
|
params: _objectSpread2(_objectSpread2({}, params), {}, {
|
|
4024
|
-
|
|
4025
|
-
event: resolvedEvent.data,
|
|
4037
|
+
event: resolvedEvent,
|
|
4026
4038
|
delay: resolvedDelay
|
|
4027
4039
|
}),
|
|
4028
4040
|
execute: function execute(actorCtx) {
|
|
@@ -4036,23 +4048,23 @@ function raise$1(eventOrExpr, options) {
|
|
|
4036
4048
|
});
|
|
4037
4049
|
}
|
|
4038
4050
|
|
|
4039
|
-
function choose
|
|
4051
|
+
function choose(guards) {
|
|
4040
4052
|
return createDynamicAction({
|
|
4041
|
-
type: choose,
|
|
4053
|
+
type: choose$1,
|
|
4042
4054
|
params: {
|
|
4043
4055
|
guards: guards
|
|
4044
4056
|
}
|
|
4045
|
-
}, function (
|
|
4057
|
+
}, function (event, _ref) {
|
|
4046
4058
|
var _guards$find;
|
|
4047
4059
|
var state = _ref.state;
|
|
4048
4060
|
var matchedActions = (_guards$find = guards.find(function (condition) {
|
|
4049
4061
|
var guard = condition.guard && toGuardDefinition(condition.guard, function (guardType) {
|
|
4050
4062
|
return state.machine.options.guards[guardType];
|
|
4051
4063
|
});
|
|
4052
|
-
return !guard || evaluateGuard(guard, state.context,
|
|
4064
|
+
return !guard || evaluateGuard(guard, state.context, event, state);
|
|
4053
4065
|
})) === null || _guards$find === void 0 ? void 0 : _guards$find.actions;
|
|
4054
4066
|
return [state, {
|
|
4055
|
-
type: choose,
|
|
4067
|
+
type: choose$1,
|
|
4056
4068
|
params: {
|
|
4057
4069
|
actions: toActionObjects(matchedActions)
|
|
4058
4070
|
}
|
|
@@ -4060,9 +4072,30 @@ function choose$1(guards) {
|
|
|
4060
4072
|
});
|
|
4061
4073
|
}
|
|
4062
4074
|
|
|
4063
|
-
|
|
4075
|
+
function pure(getActions) {
|
|
4076
|
+
return createDynamicAction({
|
|
4077
|
+
type: pure$1,
|
|
4078
|
+
params: {
|
|
4079
|
+
get: getActions
|
|
4080
|
+
}
|
|
4081
|
+
}, function (event, _ref) {
|
|
4082
|
+
var _toArray;
|
|
4083
|
+
var state = _ref.state;
|
|
4084
|
+
return [state, {
|
|
4085
|
+
type: pure$1,
|
|
4086
|
+
params: {
|
|
4087
|
+
actions: (_toArray = toArray(toActionObjects(getActions({
|
|
4088
|
+
context: state.context,
|
|
4089
|
+
event: event
|
|
4090
|
+
})))) !== null && _toArray !== void 0 ? _toArray : []
|
|
4091
|
+
}
|
|
4092
|
+
}];
|
|
4093
|
+
});
|
|
4094
|
+
}
|
|
4095
|
+
|
|
4096
|
+
var initEvent = {
|
|
4064
4097
|
type: init
|
|
4065
|
-
}
|
|
4098
|
+
};
|
|
4066
4099
|
function resolveActionObject(actionObject, actionFunctionMap) {
|
|
4067
4100
|
if (isDynamicAction(actionObject)) {
|
|
4068
4101
|
return actionObject;
|
|
@@ -4073,7 +4106,7 @@ function resolveActionObject(actionObject, actionFunctionMap) {
|
|
|
4073
4106
|
return createDynamicAction({
|
|
4074
4107
|
type: 'xstate.function',
|
|
4075
4108
|
params: (_actionObject$params = actionObject.params) !== null && _actionObject$params !== void 0 ? _actionObject$params : {}
|
|
4076
|
-
}, function (
|
|
4109
|
+
}, function (event, _ref) {
|
|
4077
4110
|
var state = _ref.state;
|
|
4078
4111
|
var a = {
|
|
4079
4112
|
type: actionObject.type,
|
|
@@ -4081,9 +4114,8 @@ function resolveActionObject(actionObject, actionFunctionMap) {
|
|
|
4081
4114
|
execute: function execute(actorCtx) {
|
|
4082
4115
|
return dereferencedAction({
|
|
4083
4116
|
context: state.context,
|
|
4084
|
-
event:
|
|
4117
|
+
event: event,
|
|
4085
4118
|
action: a,
|
|
4086
|
-
_event: state._event,
|
|
4087
4119
|
system: actorCtx.system,
|
|
4088
4120
|
self: actorCtx.self
|
|
4089
4121
|
});
|
|
@@ -4112,7 +4144,7 @@ function toActionObject(action) {
|
|
|
4112
4144
|
return createDynamicAction({
|
|
4113
4145
|
type: type,
|
|
4114
4146
|
params: {}
|
|
4115
|
-
}, function (
|
|
4147
|
+
}, function (event, _ref2) {
|
|
4116
4148
|
var state = _ref2.state;
|
|
4117
4149
|
var actionObject = {
|
|
4118
4150
|
type: type,
|
|
@@ -4122,9 +4154,8 @@ function toActionObject(action) {
|
|
|
4122
4154
|
execute: function execute(actorCtx) {
|
|
4123
4155
|
return action({
|
|
4124
4156
|
context: state.context,
|
|
4125
|
-
event:
|
|
4157
|
+
event: event,
|
|
4126
4158
|
action: actionObject,
|
|
4127
|
-
_event: _event,
|
|
4128
4159
|
self: actorCtx.self,
|
|
4129
4160
|
system: actorCtx.system
|
|
4130
4161
|
});
|
|
@@ -4152,7 +4183,7 @@ var toActionObjects = function toActionObjects(action) {
|
|
|
4152
4183
|
* @param delayRef The delay in milliseconds
|
|
4153
4184
|
* @param id The state node ID where this event is handled
|
|
4154
4185
|
*/
|
|
4155
|
-
function after
|
|
4186
|
+
function after(delayRef, id) {
|
|
4156
4187
|
var idSuffix = id ? "#".concat(id) : '';
|
|
4157
4188
|
return "".concat(exports.ActionTypes.After, "(").concat(delayRef, ")").concat(idSuffix);
|
|
4158
4189
|
}
|
|
@@ -4196,7 +4227,7 @@ function doneInvoke(invokeId, output) {
|
|
|
4196
4227
|
};
|
|
4197
4228
|
return eventObject;
|
|
4198
4229
|
}
|
|
4199
|
-
function error
|
|
4230
|
+
function error(id, data) {
|
|
4200
4231
|
var type = "".concat(exports.ActionTypes.ErrorPlatform, ".").concat(id);
|
|
4201
4232
|
var eventObject = {
|
|
4202
4233
|
type: type,
|
|
@@ -4208,10 +4239,10 @@ function error$1(id, data) {
|
|
|
4208
4239
|
return eventObject;
|
|
4209
4240
|
}
|
|
4210
4241
|
function createInitEvent(input) {
|
|
4211
|
-
return
|
|
4242
|
+
return {
|
|
4212
4243
|
type: init,
|
|
4213
4244
|
input: input
|
|
4214
|
-
}
|
|
4245
|
+
};
|
|
4215
4246
|
}
|
|
4216
4247
|
|
|
4217
4248
|
exports.Interpreter = Interpreter;
|
|
@@ -4227,18 +4258,18 @@ exports._objectWithoutProperties = _objectWithoutProperties;
|
|
|
4227
4258
|
exports._slicedToArray = _slicedToArray;
|
|
4228
4259
|
exports._toConsumableArray = _toConsumableArray;
|
|
4229
4260
|
exports.actionTypes = actionTypes;
|
|
4230
|
-
exports.after = after
|
|
4261
|
+
exports.after = after;
|
|
4231
4262
|
exports.and = and;
|
|
4232
|
-
exports.assign = assign
|
|
4233
|
-
exports.cancel = cancel
|
|
4234
|
-
exports.choose = choose
|
|
4235
|
-
exports.
|
|
4263
|
+
exports.assign = assign;
|
|
4264
|
+
exports.cancel = cancel;
|
|
4265
|
+
exports.choose = choose;
|
|
4266
|
+
exports.createEmptyActor = createEmptyActor;
|
|
4236
4267
|
exports.createInitEvent = createInitEvent;
|
|
4237
4268
|
exports.createInvokeId = createInvokeId;
|
|
4238
4269
|
exports.createSpawner = createSpawner;
|
|
4239
4270
|
exports.done = done;
|
|
4240
4271
|
exports.doneInvoke = doneInvoke;
|
|
4241
|
-
exports.error = error
|
|
4272
|
+
exports.error = error;
|
|
4242
4273
|
exports.escalate = escalate;
|
|
4243
4274
|
exports.evaluateGuard = evaluateGuard;
|
|
4244
4275
|
exports.flatten = flatten;
|
|
@@ -4260,14 +4291,14 @@ exports.getStateNodeByPath = getStateNodeByPath;
|
|
|
4260
4291
|
exports.getStateNodes = getStateNodes;
|
|
4261
4292
|
exports.initEvent = initEvent;
|
|
4262
4293
|
exports.interpret = interpret;
|
|
4263
|
-
exports.invoke = invoke;
|
|
4294
|
+
exports.invoke = invoke$1;
|
|
4264
4295
|
exports.isActorRef = isActorRef;
|
|
4296
|
+
exports.isErrorEvent = isErrorEvent;
|
|
4265
4297
|
exports.isInFinalState = isInFinalState;
|
|
4266
|
-
exports.isSCXMLErrorEvent = isSCXMLErrorEvent;
|
|
4267
4298
|
exports.isSignal = isSignal;
|
|
4268
4299
|
exports.isStateId = isStateId;
|
|
4269
4300
|
exports.isString = isString;
|
|
4270
|
-
exports.log = log
|
|
4301
|
+
exports.log = log;
|
|
4271
4302
|
exports.macrostep = macrostep;
|
|
4272
4303
|
exports.mapValues = mapValues;
|
|
4273
4304
|
exports.matchesState = matchesState;
|
|
@@ -4277,19 +4308,18 @@ exports.not = not;
|
|
|
4277
4308
|
exports.or = or;
|
|
4278
4309
|
exports.pathToStateValue = pathToStateValue;
|
|
4279
4310
|
exports.pure = pure;
|
|
4280
|
-
exports.raise = raise
|
|
4311
|
+
exports.raise = raise;
|
|
4281
4312
|
exports.resolveActionObject = resolveActionObject;
|
|
4282
4313
|
exports.resolveActionsAndContext = resolveActionsAndContext;
|
|
4283
4314
|
exports.resolveReferencedActor = resolveReferencedActor;
|
|
4284
4315
|
exports.resolveStateValue = resolveStateValue;
|
|
4285
|
-
exports.
|
|
4286
|
-
exports.send = send$1;
|
|
4316
|
+
exports.send = send;
|
|
4287
4317
|
exports.sendParent = sendParent;
|
|
4288
4318
|
exports.sendTo = sendTo;
|
|
4289
4319
|
exports.startSignal = startSignal;
|
|
4290
4320
|
exports.startSignalType = startSignalType;
|
|
4291
4321
|
exports.stateIn = stateIn;
|
|
4292
|
-
exports.stop = stop
|
|
4322
|
+
exports.stop = stop;
|
|
4293
4323
|
exports.stopSignal = stopSignal;
|
|
4294
4324
|
exports.stopSignalType = stopSignalType;
|
|
4295
4325
|
exports.toActionObject = toActionObject;
|
|
@@ -4299,6 +4329,5 @@ exports.toArray = toArray;
|
|
|
4299
4329
|
exports.toGuardDefinition = toGuardDefinition;
|
|
4300
4330
|
exports.toInvokeConfig = toInvokeConfig;
|
|
4301
4331
|
exports.toObserver = toObserver;
|
|
4302
|
-
exports.toSCXMLEvent = toSCXMLEvent;
|
|
4303
4332
|
exports.toTransitionConfigArray = toTransitionConfigArray;
|
|
4304
4333
|
exports.transitionNode = transitionNode;
|