xstate 5.32.1 → 6.0.0-alpha.2
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/README.md +7 -8
- package/dist/StateMachine-2dcdb1f5.esm.js +720 -0
- package/dist/StateMachine-2ea0a7fa.development.esm.js +737 -0
- package/dist/StateMachine-64813f46.cjs.js +723 -0
- package/dist/StateMachine-8d22a79c.development.cjs.js +740 -0
- package/dist/declarations/src/State.d.ts +11 -13
- package/dist/declarations/src/StateMachine.d.ts +27 -21
- package/dist/declarations/src/StateNode.d.ts +18 -54
- package/dist/declarations/src/actions.d.ts +14 -9
- package/dist/declarations/src/actors/callback.d.ts +42 -16
- package/dist/declarations/src/actors/index.d.ts +9 -6
- package/dist/declarations/src/actors/listener.d.ts +18 -0
- package/dist/declarations/src/actors/logic.d.ts +105 -0
- package/dist/declarations/src/actors/observable.d.ts +72 -27
- package/dist/declarations/src/actors/promise.d.ts +133 -48
- package/dist/declarations/src/actors/subscription.d.ts +22 -0
- package/dist/declarations/src/atom.d.ts +81 -0
- package/dist/declarations/src/createActor.d.ts +31 -33
- package/dist/declarations/src/createMachine.d.ts +35 -7
- package/dist/declarations/src/createMachineFromConfig.d.ts +176 -0
- package/dist/declarations/src/graph/graph.d.ts +4 -2
- package/dist/declarations/src/index.d.ts +12 -8
- package/dist/declarations/src/inspection.d.ts +84 -30
- package/dist/declarations/src/mapState.d.ts +4 -2
- package/dist/declarations/src/schema.types.d.ts +90 -0
- package/dist/declarations/src/serialize.d.ts +44 -0
- package/dist/declarations/src/setup.d.ts +251 -135
- package/dist/declarations/src/spawn.d.ts +6 -31
- package/dist/declarations/src/stateUtils.d.ts +21 -19
- package/dist/declarations/src/system.d.ts +8 -7
- package/dist/declarations/src/transition.d.ts +5 -5
- package/dist/declarations/src/types.d.ts +405 -405
- package/dist/declarations/src/types.v6.d.ts +392 -0
- package/dist/declarations/src/utils.d.ts +4 -3
- package/dist/index-93edd3bd.esm.js +4909 -0
- package/dist/index-9cb3b3a0.cjs.js +4968 -0
- package/dist/index-e61170ba.development.esm.js +4948 -0
- package/dist/index-f6ef20d1.development.cjs.js +5007 -0
- package/dist/xstate-actors.cjs.js +12 -838
- package/dist/xstate-actors.cjs.mjs +10 -5
- package/dist/xstate-actors.development.cjs.js +12 -838
- package/dist/xstate-actors.development.cjs.mjs +10 -5
- package/dist/xstate-actors.development.esm.js +1 -836
- package/dist/xstate-actors.esm.js +1 -836
- package/dist/xstate-actors.umd.min.js +1 -1
- package/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/xstate-graph.cjs.js +18 -29
- package/dist/xstate-graph.development.cjs.js +18 -29
- package/dist/xstate-graph.development.esm.js +15 -26
- package/dist/xstate-graph.esm.js +15 -26
- package/dist/xstate-graph.umd.min.js +1 -1
- package/dist/xstate-graph.umd.min.js.map +1 -1
- package/dist/xstate.cjs.js +1316 -112
- package/dist/xstate.cjs.mjs +22 -22
- package/dist/xstate.development.cjs.js +1316 -112
- package/dist/xstate.development.cjs.mjs +22 -22
- package/dist/xstate.development.esm.js +1278 -76
- package/dist/xstate.esm.js +1278 -76
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/package.json +3 -47
- package/dist/StateMachine-45e79c35.esm.js +0 -560
- package/dist/StateMachine-be2e51a3.development.cjs.js +0 -569
- package/dist/StateMachine-e0178d48.development.esm.js +0 -566
- package/dist/StateMachine-e6732977.cjs.js +0 -563
- package/dist/assign-2aa58daa.esm.js +0 -127
- package/dist/assign-927227d6.development.cjs.js +0 -135
- package/dist/assign-e8f2bd75.cjs.js +0 -129
- package/dist/assign-f338cee3.development.esm.js +0 -133
- package/dist/declarations/src/actions/assign.d.ts +0 -45
- package/dist/declarations/src/actions/cancel.d.ts +0 -39
- package/dist/declarations/src/actions/emit.d.ts +0 -44
- package/dist/declarations/src/actions/enqueueActions.d.ts +0 -57
- package/dist/declarations/src/actions/log.d.ts +0 -16
- package/dist/declarations/src/actions/raise.d.ts +0 -21
- package/dist/declarations/src/actions/send.d.ts +0 -42
- package/dist/declarations/src/actions/spawnChild.d.ts +0 -34
- package/dist/declarations/src/actions/stopChild.d.ts +0 -19
- package/dist/declarations/src/actors/transition.d.ts +0 -143
- package/dist/declarations/src/dev/index.d.ts +0 -14
- package/dist/declarations/src/guards.d.ts +0 -128
- package/dist/log-410e5e55.development.esm.js +0 -429
- package/dist/log-7776fcf2.cjs.js +0 -409
- package/dist/log-c2e11c01.development.cjs.js +0 -437
- package/dist/log-fa75ec2d.esm.js +0 -401
- package/dist/raise-74097812.development.esm.js +0 -2823
- package/dist/raise-7c948725.cjs.js +0 -2816
- package/dist/raise-964cd4e9.development.cjs.js +0 -2878
- package/dist/raise-e974d1c9.esm.js +0 -2761
- package/dist/xstate-actions.cjs.d.mts +0 -2
- package/dist/xstate-actions.cjs.d.ts +0 -2
- package/dist/xstate-actions.cjs.js +0 -23
- package/dist/xstate-actions.cjs.mjs +0 -14
- package/dist/xstate-actions.development.cjs.js +0 -23
- package/dist/xstate-actions.development.cjs.mjs +0 -14
- package/dist/xstate-actions.development.esm.js +0 -4
- package/dist/xstate-actions.esm.js +0 -4
- package/dist/xstate-actions.umd.min.js +0 -2
- package/dist/xstate-actions.umd.min.js.map +0 -1
- package/dist/xstate-dev.cjs.d.mts +0 -2
- package/dist/xstate-dev.cjs.d.ts +0 -2
- package/dist/xstate-dev.cjs.js +0 -48
- package/dist/xstate-dev.cjs.mjs +0 -5
- package/dist/xstate-dev.development.cjs.js +0 -51
- package/dist/xstate-dev.development.cjs.mjs +0 -5
- package/dist/xstate-dev.development.esm.js +0 -45
- package/dist/xstate-dev.esm.js +0 -42
- package/dist/xstate-dev.umd.min.js +0 -2
- package/dist/xstate-dev.umd.min.js.map +0 -1
- package/dist/xstate-guards.cjs.d.mts +0 -2
- package/dist/xstate-guards.cjs.d.ts +0 -2
- package/dist/xstate-guards.cjs.js +0 -14
- package/dist/xstate-guards.cjs.mjs +0 -7
- package/dist/xstate-guards.development.cjs.js +0 -14
- package/dist/xstate-guards.development.cjs.mjs +0 -7
- package/dist/xstate-guards.development.esm.js +0 -2
- package/dist/xstate-guards.esm.js +0 -2
- package/dist/xstate-guards.umd.min.js +0 -2
- package/dist/xstate-guards.umd.min.js.map +0 -1
package/dist/xstate-graph.cjs.js
CHANGED
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var dist_xstateActors = require('./
|
|
6
|
-
var StateMachine = require('./StateMachine-
|
|
7
|
-
var dist_xstateGuards = require('./raise-7c948725.cjs.js');
|
|
8
|
-
require('./xstate-dev.cjs.js');
|
|
9
|
-
require('./assign-e8f2bd75.cjs.js');
|
|
5
|
+
var dist_xstateActors = require('./index-9cb3b3a0.cjs.js');
|
|
6
|
+
var StateMachine = require('./StateMachine-64813f46.cjs.js');
|
|
10
7
|
|
|
11
8
|
function simpleStringify(value) {
|
|
12
9
|
return JSON.stringify(value);
|
|
@@ -120,23 +117,8 @@ const createSimplePathsGen = () => (logic, defaultOptions) => {
|
|
|
120
117
|
return paths;
|
|
121
118
|
};
|
|
122
119
|
|
|
123
|
-
const validateState =
|
|
124
|
-
|
|
125
|
-
throw new Error('Invocations on test machines are not supported');
|
|
126
|
-
}
|
|
127
|
-
if (state.after.length > 0) {
|
|
128
|
-
throw new Error('After events on test machines are not supported');
|
|
129
|
-
}
|
|
130
|
-
// TODO: this doesn't account for always transitions
|
|
131
|
-
[...state.entry, ...state.exit, ...[...state.transitions.values()].flatMap(t => t.flatMap(t => t.actions))].forEach(action => {
|
|
132
|
-
// TODO: this doesn't check referenced actions, only the inline ones
|
|
133
|
-
if (typeof action === 'function' && 'resolve' in action && typeof action.delay === 'number') {
|
|
134
|
-
throw new Error('Delayed actions on test machines are not supported');
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
for (const child of Object.values(state.states)) {
|
|
138
|
-
validateState(child);
|
|
139
|
-
}
|
|
120
|
+
const validateState = _state => {
|
|
121
|
+
// TODO
|
|
140
122
|
};
|
|
141
123
|
const validateMachine = machine => {
|
|
142
124
|
validateState(machine.root);
|
|
@@ -182,7 +164,7 @@ class TestModel {
|
|
|
182
164
|
return {
|
|
183
165
|
...statePath,
|
|
184
166
|
test: params => this.testPath(statePath, params),
|
|
185
|
-
description:
|
|
167
|
+
description: dist_xstateActors.isMachineSnapshot(statePath.state) ? `Reaches ${getDescription(statePath.state).trim()}: ${eventsString}` : JSON.stringify(statePath.state)
|
|
186
168
|
};
|
|
187
169
|
};
|
|
188
170
|
this.options = {
|
|
@@ -385,7 +367,7 @@ function createTestModel(machine, options) {
|
|
|
385
367
|
},
|
|
386
368
|
events: state => {
|
|
387
369
|
const events = typeof getEvents === 'function' ? getEvents(state) : getEvents ?? [];
|
|
388
|
-
return
|
|
370
|
+
return dist_xstateActors.getAllOwnEventDescriptors(state).flatMap(eventType => {
|
|
389
371
|
if (events.some(e => e.type === eventType)) {
|
|
390
372
|
return events.filter(e => e.type === eventType);
|
|
391
373
|
}
|
|
@@ -464,7 +446,7 @@ function createDefaultMachineOptions(machine, options) {
|
|
|
464
446
|
serializeEvent,
|
|
465
447
|
events: state => {
|
|
466
448
|
const events = typeof getEvents === 'function' ? getEvents(state) : getEvents ?? [];
|
|
467
|
-
return
|
|
449
|
+
return dist_xstateActors.getAllOwnEventDescriptors(state).flatMap(type => {
|
|
468
450
|
const matchingEvents = events.filter(ev => ev.type === type);
|
|
469
451
|
if (matchingEvents.length) {
|
|
470
452
|
return matchingEvents;
|
|
@@ -571,7 +553,11 @@ function joinPaths(headPath, tailPath) {
|
|
|
571
553
|
};
|
|
572
554
|
}
|
|
573
555
|
|
|
556
|
+
function resolveTransitionSnapshot(result) {
|
|
557
|
+
return Array.isArray(result) ? result[0] : result;
|
|
558
|
+
}
|
|
574
559
|
function getAdjacencyMap(logic, options) {
|
|
560
|
+
|
|
575
561
|
const {
|
|
576
562
|
transition
|
|
577
563
|
} = logic;
|
|
@@ -622,7 +608,7 @@ function getAdjacencyMap(logic, options) {
|
|
|
622
608
|
if (filterEvents && !filterEvents(state, nextEvent)) {
|
|
623
609
|
continue;
|
|
624
610
|
}
|
|
625
|
-
const nextSnapshot = transition(state, nextEvent, actorScope);
|
|
611
|
+
const nextSnapshot = resolveTransitionSnapshot(transition(state, nextEvent, actorScope));
|
|
626
612
|
adj[serializedState].transitions[serializeEvent(nextEvent)] = {
|
|
627
613
|
event: nextEvent,
|
|
628
614
|
state: nextSnapshot
|
|
@@ -657,7 +643,7 @@ function alterPath(path) {
|
|
|
657
643
|
steps = [{
|
|
658
644
|
state: path.state,
|
|
659
645
|
event: {
|
|
660
|
-
type:
|
|
646
|
+
type: dist_xstateActors.XSTATE_INIT
|
|
661
647
|
}
|
|
662
648
|
}];
|
|
663
649
|
} else {
|
|
@@ -666,7 +652,7 @@ function alterPath(path) {
|
|
|
666
652
|
steps.push({
|
|
667
653
|
state: step.state,
|
|
668
654
|
event: i === 0 ? {
|
|
669
|
-
type:
|
|
655
|
+
type: dist_xstateActors.XSTATE_INIT
|
|
670
656
|
} : path.steps[i - 1].event
|
|
671
657
|
});
|
|
672
658
|
}
|
|
@@ -682,7 +668,7 @@ function alterPath(path) {
|
|
|
682
668
|
}
|
|
683
669
|
|
|
684
670
|
function isMachine(value) {
|
|
685
|
-
return !!value &&
|
|
671
|
+
return !!value && value instanceof StateMachine.StateMachine;
|
|
686
672
|
}
|
|
687
673
|
function getPathsFromEvents(logic, events, options) {
|
|
688
674
|
const resolvedOptions = resolveTraversalOptions(logic, {
|
|
@@ -855,6 +841,9 @@ function getSimplePaths(logic, options) {
|
|
|
855
841
|
};
|
|
856
842
|
toStatePlan.paths.push(path2);
|
|
857
843
|
} else {
|
|
844
|
+
if (!adjacency[fromStateSerial]) {
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
858
847
|
for (const serializedEvent of Object.keys(adjacency[fromStateSerial].transitions)) {
|
|
859
848
|
const {
|
|
860
849
|
state: nextState,
|
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var dist_xstateActors = require('./
|
|
6
|
-
var StateMachine = require('./StateMachine-
|
|
7
|
-
var dist_xstateGuards = require('./raise-964cd4e9.development.cjs.js');
|
|
8
|
-
require('./xstate-dev.development.cjs.js');
|
|
9
|
-
require('./assign-927227d6.development.cjs.js');
|
|
5
|
+
var dist_xstateActors = require('./index-f6ef20d1.development.cjs.js');
|
|
6
|
+
var StateMachine = require('./StateMachine-8d22a79c.development.cjs.js');
|
|
10
7
|
|
|
11
8
|
function simpleStringify(value) {
|
|
12
9
|
return JSON.stringify(value);
|
|
@@ -120,23 +117,8 @@ const createSimplePathsGen = () => (logic, defaultOptions) => {
|
|
|
120
117
|
return paths;
|
|
121
118
|
};
|
|
122
119
|
|
|
123
|
-
const validateState =
|
|
124
|
-
|
|
125
|
-
throw new Error('Invocations on test machines are not supported');
|
|
126
|
-
}
|
|
127
|
-
if (state.after.length > 0) {
|
|
128
|
-
throw new Error('After events on test machines are not supported');
|
|
129
|
-
}
|
|
130
|
-
// TODO: this doesn't account for always transitions
|
|
131
|
-
[...state.entry, ...state.exit, ...[...state.transitions.values()].flatMap(t => t.flatMap(t => t.actions))].forEach(action => {
|
|
132
|
-
// TODO: this doesn't check referenced actions, only the inline ones
|
|
133
|
-
if (typeof action === 'function' && 'resolve' in action && typeof action.delay === 'number') {
|
|
134
|
-
throw new Error('Delayed actions on test machines are not supported');
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
for (const child of Object.values(state.states)) {
|
|
138
|
-
validateState(child);
|
|
139
|
-
}
|
|
120
|
+
const validateState = _state => {
|
|
121
|
+
// TODO
|
|
140
122
|
};
|
|
141
123
|
const validateMachine = machine => {
|
|
142
124
|
validateState(machine.root);
|
|
@@ -182,7 +164,7 @@ class TestModel {
|
|
|
182
164
|
return {
|
|
183
165
|
...statePath,
|
|
184
166
|
test: params => this.testPath(statePath, params),
|
|
185
|
-
description:
|
|
167
|
+
description: dist_xstateActors.isMachineSnapshot(statePath.state) ? `Reaches ${getDescription(statePath.state).trim()}: ${eventsString}` : JSON.stringify(statePath.state)
|
|
186
168
|
};
|
|
187
169
|
};
|
|
188
170
|
this.options = {
|
|
@@ -385,7 +367,7 @@ function createTestModel(machine, options) {
|
|
|
385
367
|
},
|
|
386
368
|
events: state => {
|
|
387
369
|
const events = typeof getEvents === 'function' ? getEvents(state) : getEvents ?? [];
|
|
388
|
-
return
|
|
370
|
+
return dist_xstateActors.getAllOwnEventDescriptors(state).flatMap(eventType => {
|
|
389
371
|
if (events.some(e => e.type === eventType)) {
|
|
390
372
|
return events.filter(e => e.type === eventType);
|
|
391
373
|
}
|
|
@@ -464,7 +446,7 @@ function createDefaultMachineOptions(machine, options) {
|
|
|
464
446
|
serializeEvent,
|
|
465
447
|
events: state => {
|
|
466
448
|
const events = typeof getEvents === 'function' ? getEvents(state) : getEvents ?? [];
|
|
467
|
-
return
|
|
449
|
+
return dist_xstateActors.getAllOwnEventDescriptors(state).flatMap(type => {
|
|
468
450
|
const matchingEvents = events.filter(ev => ev.type === type);
|
|
469
451
|
if (matchingEvents.length) {
|
|
470
452
|
return matchingEvents;
|
|
@@ -571,7 +553,11 @@ function joinPaths(headPath, tailPath) {
|
|
|
571
553
|
};
|
|
572
554
|
}
|
|
573
555
|
|
|
556
|
+
function resolveTransitionSnapshot(result) {
|
|
557
|
+
return Array.isArray(result) ? result[0] : result;
|
|
558
|
+
}
|
|
574
559
|
function getAdjacencyMap(logic, options) {
|
|
560
|
+
|
|
575
561
|
const {
|
|
576
562
|
transition
|
|
577
563
|
} = logic;
|
|
@@ -622,7 +608,7 @@ function getAdjacencyMap(logic, options) {
|
|
|
622
608
|
if (filterEvents && !filterEvents(state, nextEvent)) {
|
|
623
609
|
continue;
|
|
624
610
|
}
|
|
625
|
-
const nextSnapshot = transition(state, nextEvent, actorScope);
|
|
611
|
+
const nextSnapshot = resolveTransitionSnapshot(transition(state, nextEvent, actorScope));
|
|
626
612
|
adj[serializedState].transitions[serializeEvent(nextEvent)] = {
|
|
627
613
|
event: nextEvent,
|
|
628
614
|
state: nextSnapshot
|
|
@@ -657,7 +643,7 @@ function alterPath(path) {
|
|
|
657
643
|
steps = [{
|
|
658
644
|
state: path.state,
|
|
659
645
|
event: {
|
|
660
|
-
type:
|
|
646
|
+
type: dist_xstateActors.XSTATE_INIT
|
|
661
647
|
}
|
|
662
648
|
}];
|
|
663
649
|
} else {
|
|
@@ -666,7 +652,7 @@ function alterPath(path) {
|
|
|
666
652
|
steps.push({
|
|
667
653
|
state: step.state,
|
|
668
654
|
event: i === 0 ? {
|
|
669
|
-
type:
|
|
655
|
+
type: dist_xstateActors.XSTATE_INIT
|
|
670
656
|
} : path.steps[i - 1].event
|
|
671
657
|
});
|
|
672
658
|
}
|
|
@@ -682,7 +668,7 @@ function alterPath(path) {
|
|
|
682
668
|
}
|
|
683
669
|
|
|
684
670
|
function isMachine(value) {
|
|
685
|
-
return !!value &&
|
|
671
|
+
return !!value && value instanceof StateMachine.StateMachine;
|
|
686
672
|
}
|
|
687
673
|
function getPathsFromEvents(logic, events, options) {
|
|
688
674
|
const resolvedOptions = resolveTraversalOptions(logic, {
|
|
@@ -855,6 +841,9 @@ function getSimplePaths(logic, options) {
|
|
|
855
841
|
};
|
|
856
842
|
toStatePlan.paths.push(path2);
|
|
857
843
|
} else {
|
|
844
|
+
if (!adjacency[fromStateSerial]) {
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
858
847
|
for (const serializedEvent of Object.keys(adjacency[fromStateSerial].transitions)) {
|
|
859
848
|
const {
|
|
860
849
|
state: nextState,
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { createEmptyActor } from './
|
|
2
|
-
import { S as StateMachine } from './StateMachine-
|
|
3
|
-
import { l as isMachineSnapshot, q as getAllOwnEventDescriptors } from './raise-74097812.development.esm.js';
|
|
4
|
-
import './xstate-dev.development.esm.js';
|
|
5
|
-
import './assign-f338cee3.development.esm.js';
|
|
1
|
+
import { l as isMachineSnapshot, o as getAllOwnEventDescriptors, v as createEmptyActor, a3 as XSTATE_INIT } from './index-e61170ba.development.esm.js';
|
|
2
|
+
import { S as StateMachine } from './StateMachine-2ea0a7fa.development.esm.js';
|
|
6
3
|
|
|
7
4
|
function simpleStringify(value) {
|
|
8
5
|
return JSON.stringify(value);
|
|
@@ -116,23 +113,8 @@ const createSimplePathsGen = () => (logic, defaultOptions) => {
|
|
|
116
113
|
return paths;
|
|
117
114
|
};
|
|
118
115
|
|
|
119
|
-
const validateState =
|
|
120
|
-
|
|
121
|
-
throw new Error('Invocations on test machines are not supported');
|
|
122
|
-
}
|
|
123
|
-
if (state.after.length > 0) {
|
|
124
|
-
throw new Error('After events on test machines are not supported');
|
|
125
|
-
}
|
|
126
|
-
// TODO: this doesn't account for always transitions
|
|
127
|
-
[...state.entry, ...state.exit, ...[...state.transitions.values()].flatMap(t => t.flatMap(t => t.actions))].forEach(action => {
|
|
128
|
-
// TODO: this doesn't check referenced actions, only the inline ones
|
|
129
|
-
if (typeof action === 'function' && 'resolve' in action && typeof action.delay === 'number') {
|
|
130
|
-
throw new Error('Delayed actions on test machines are not supported');
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
for (const child of Object.values(state.states)) {
|
|
134
|
-
validateState(child);
|
|
135
|
-
}
|
|
116
|
+
const validateState = _state => {
|
|
117
|
+
// TODO
|
|
136
118
|
};
|
|
137
119
|
const validateMachine = machine => {
|
|
138
120
|
validateState(machine.root);
|
|
@@ -567,7 +549,11 @@ function joinPaths(headPath, tailPath) {
|
|
|
567
549
|
};
|
|
568
550
|
}
|
|
569
551
|
|
|
552
|
+
function resolveTransitionSnapshot(result) {
|
|
553
|
+
return Array.isArray(result) ? result[0] : result;
|
|
554
|
+
}
|
|
570
555
|
function getAdjacencyMap(logic, options) {
|
|
556
|
+
|
|
571
557
|
const {
|
|
572
558
|
transition
|
|
573
559
|
} = logic;
|
|
@@ -618,7 +604,7 @@ function getAdjacencyMap(logic, options) {
|
|
|
618
604
|
if (filterEvents && !filterEvents(state, nextEvent)) {
|
|
619
605
|
continue;
|
|
620
606
|
}
|
|
621
|
-
const nextSnapshot = transition(state, nextEvent, actorScope);
|
|
607
|
+
const nextSnapshot = resolveTransitionSnapshot(transition(state, nextEvent, actorScope));
|
|
622
608
|
adj[serializedState].transitions[serializeEvent(nextEvent)] = {
|
|
623
609
|
event: nextEvent,
|
|
624
610
|
state: nextSnapshot
|
|
@@ -653,7 +639,7 @@ function alterPath(path) {
|
|
|
653
639
|
steps = [{
|
|
654
640
|
state: path.state,
|
|
655
641
|
event: {
|
|
656
|
-
type:
|
|
642
|
+
type: XSTATE_INIT
|
|
657
643
|
}
|
|
658
644
|
}];
|
|
659
645
|
} else {
|
|
@@ -662,7 +648,7 @@ function alterPath(path) {
|
|
|
662
648
|
steps.push({
|
|
663
649
|
state: step.state,
|
|
664
650
|
event: i === 0 ? {
|
|
665
|
-
type:
|
|
651
|
+
type: XSTATE_INIT
|
|
666
652
|
} : path.steps[i - 1].event
|
|
667
653
|
});
|
|
668
654
|
}
|
|
@@ -678,7 +664,7 @@ function alterPath(path) {
|
|
|
678
664
|
}
|
|
679
665
|
|
|
680
666
|
function isMachine(value) {
|
|
681
|
-
return !!value &&
|
|
667
|
+
return !!value && value instanceof StateMachine;
|
|
682
668
|
}
|
|
683
669
|
function getPathsFromEvents(logic, events, options) {
|
|
684
670
|
const resolvedOptions = resolveTraversalOptions(logic, {
|
|
@@ -851,6 +837,9 @@ function getSimplePaths(logic, options) {
|
|
|
851
837
|
};
|
|
852
838
|
toStatePlan.paths.push(path2);
|
|
853
839
|
} else {
|
|
840
|
+
if (!adjacency[fromStateSerial]) {
|
|
841
|
+
return;
|
|
842
|
+
}
|
|
854
843
|
for (const serializedEvent of Object.keys(adjacency[fromStateSerial].transitions)) {
|
|
855
844
|
const {
|
|
856
845
|
state: nextState,
|
package/dist/xstate-graph.esm.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { createEmptyActor } from './
|
|
2
|
-
import { S as StateMachine } from './StateMachine-
|
|
3
|
-
import { l as isMachineSnapshot, q as getAllOwnEventDescriptors } from './raise-e974d1c9.esm.js';
|
|
4
|
-
import './xstate-dev.esm.js';
|
|
5
|
-
import './assign-2aa58daa.esm.js';
|
|
1
|
+
import { l as isMachineSnapshot, o as getAllOwnEventDescriptors, v as createEmptyActor, a3 as XSTATE_INIT } from './index-93edd3bd.esm.js';
|
|
2
|
+
import { S as StateMachine } from './StateMachine-2dcdb1f5.esm.js';
|
|
6
3
|
|
|
7
4
|
function simpleStringify(value) {
|
|
8
5
|
return JSON.stringify(value);
|
|
@@ -116,23 +113,8 @@ const createSimplePathsGen = () => (logic, defaultOptions) => {
|
|
|
116
113
|
return paths;
|
|
117
114
|
};
|
|
118
115
|
|
|
119
|
-
const validateState =
|
|
120
|
-
|
|
121
|
-
throw new Error('Invocations on test machines are not supported');
|
|
122
|
-
}
|
|
123
|
-
if (state.after.length > 0) {
|
|
124
|
-
throw new Error('After events on test machines are not supported');
|
|
125
|
-
}
|
|
126
|
-
// TODO: this doesn't account for always transitions
|
|
127
|
-
[...state.entry, ...state.exit, ...[...state.transitions.values()].flatMap(t => t.flatMap(t => t.actions))].forEach(action => {
|
|
128
|
-
// TODO: this doesn't check referenced actions, only the inline ones
|
|
129
|
-
if (typeof action === 'function' && 'resolve' in action && typeof action.delay === 'number') {
|
|
130
|
-
throw new Error('Delayed actions on test machines are not supported');
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
for (const child of Object.values(state.states)) {
|
|
134
|
-
validateState(child);
|
|
135
|
-
}
|
|
116
|
+
const validateState = _state => {
|
|
117
|
+
// TODO
|
|
136
118
|
};
|
|
137
119
|
const validateMachine = machine => {
|
|
138
120
|
validateState(machine.root);
|
|
@@ -567,7 +549,11 @@ function joinPaths(headPath, tailPath) {
|
|
|
567
549
|
};
|
|
568
550
|
}
|
|
569
551
|
|
|
552
|
+
function resolveTransitionSnapshot(result) {
|
|
553
|
+
return Array.isArray(result) ? result[0] : result;
|
|
554
|
+
}
|
|
570
555
|
function getAdjacencyMap(logic, options) {
|
|
556
|
+
|
|
571
557
|
const {
|
|
572
558
|
transition
|
|
573
559
|
} = logic;
|
|
@@ -618,7 +604,7 @@ function getAdjacencyMap(logic, options) {
|
|
|
618
604
|
if (filterEvents && !filterEvents(state, nextEvent)) {
|
|
619
605
|
continue;
|
|
620
606
|
}
|
|
621
|
-
const nextSnapshot = transition(state, nextEvent, actorScope);
|
|
607
|
+
const nextSnapshot = resolveTransitionSnapshot(transition(state, nextEvent, actorScope));
|
|
622
608
|
adj[serializedState].transitions[serializeEvent(nextEvent)] = {
|
|
623
609
|
event: nextEvent,
|
|
624
610
|
state: nextSnapshot
|
|
@@ -653,7 +639,7 @@ function alterPath(path) {
|
|
|
653
639
|
steps = [{
|
|
654
640
|
state: path.state,
|
|
655
641
|
event: {
|
|
656
|
-
type:
|
|
642
|
+
type: XSTATE_INIT
|
|
657
643
|
}
|
|
658
644
|
}];
|
|
659
645
|
} else {
|
|
@@ -662,7 +648,7 @@ function alterPath(path) {
|
|
|
662
648
|
steps.push({
|
|
663
649
|
state: step.state,
|
|
664
650
|
event: i === 0 ? {
|
|
665
|
-
type:
|
|
651
|
+
type: XSTATE_INIT
|
|
666
652
|
} : path.steps[i - 1].event
|
|
667
653
|
});
|
|
668
654
|
}
|
|
@@ -678,7 +664,7 @@ function alterPath(path) {
|
|
|
678
664
|
}
|
|
679
665
|
|
|
680
666
|
function isMachine(value) {
|
|
681
|
-
return !!value &&
|
|
667
|
+
return !!value && value instanceof StateMachine;
|
|
682
668
|
}
|
|
683
669
|
function getPathsFromEvents(logic, events, options) {
|
|
684
670
|
const resolvedOptions = resolveTraversalOptions(logic, {
|
|
@@ -851,6 +837,9 @@ function getSimplePaths(logic, options) {
|
|
|
851
837
|
};
|
|
852
838
|
toStatePlan.paths.push(path2);
|
|
853
839
|
} else {
|
|
840
|
+
if (!adjacency[fromStateSerial]) {
|
|
841
|
+
return;
|
|
842
|
+
}
|
|
854
843
|
for (const serializedEvent of Object.keys(adjacency[fromStateSerial].transitions)) {
|
|
855
844
|
const {
|
|
856
845
|
state: nextState,
|