xstate 5.0.0-beta.29 → 5.0.0-beta.31
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.js +3 -3
- package/actions/dist/xstate-actions.development.cjs.js +3 -3
- package/actions/dist/xstate-actions.development.esm.js +3 -3
- package/actions/dist/xstate-actions.esm.js +3 -3
- 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.js +100 -104
- package/actors/dist/xstate-actors.development.cjs.js +100 -104
- package/actors/dist/xstate-actors.development.esm.js +100 -104
- package/actors/dist/xstate-actors.esm.js +100 -104
- package/actors/dist/xstate-actors.umd.min.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/declarations/src/Machine.d.ts +2 -2
- package/dist/declarations/src/State.d.ts +4 -6
- package/dist/declarations/src/StateMachine.d.ts +28 -21
- package/dist/declarations/src/StateNode.d.ts +3 -3
- package/dist/declarations/src/actions/stop.d.ts +1 -1
- package/dist/declarations/src/actors/callback.d.ts +8 -8
- package/dist/declarations/src/actors/index.d.ts +3 -3
- package/dist/declarations/src/actors/observable.d.ts +12 -13
- package/dist/declarations/src/actors/promise.d.ts +11 -14
- package/dist/declarations/src/actors/transition.d.ts +10 -7
- package/dist/declarations/src/index.d.ts +1 -1
- package/dist/declarations/src/interpreter.d.ts +4 -4
- package/dist/declarations/src/spawn.d.ts +3 -0
- package/dist/declarations/src/stateUtils.d.ts +5 -6
- package/dist/declarations/src/types.d.ts +74 -69
- package/dist/declarations/src/utils.d.ts +4 -4
- package/dist/{interpreter-c357bc50.cjs.js → interpreter-05e11c15.cjs.js} +11 -13
- package/dist/{interpreter-e2c6a579.development.cjs.js → interpreter-a2236840.development.cjs.js} +12 -14
- package/dist/{interpreter-498891b2.esm.js → interpreter-d5fa7ce0.esm.js} +11 -13
- package/dist/{interpreter-6e7909c8.development.esm.js → interpreter-e4d2487f.development.esm.js} +12 -14
- package/dist/{raise-59f2c242.esm.js → raise-6a68d0cc.esm.js} +61 -32
- package/dist/{raise-e778a828.development.esm.js → raise-6fbd4513.development.esm.js} +61 -32
- package/dist/{raise-03e57569.cjs.js → raise-90808d65.cjs.js} +61 -32
- package/dist/{raise-f751dfac.development.cjs.js → raise-b4bfe138.development.cjs.js} +61 -32
- package/dist/{send-f53778f6.development.cjs.js → send-4163d2af.development.cjs.js} +52 -20
- package/dist/{send-51717e53.cjs.js → send-72e85cc6.cjs.js} +52 -20
- package/dist/{send-42c83fb2.development.esm.js → send-7baeedcb.development.esm.js} +52 -20
- package/dist/{send-fff224db.esm.js → send-e5f0f3f6.esm.js} +52 -20
- package/dist/xstate.cjs.js +15 -24
- package/dist/xstate.development.cjs.js +18 -24
- package/dist/xstate.development.esm.js +21 -27
- package/dist/xstate.esm.js +18 -27
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.cjs.js +2 -2
- package/guards/dist/xstate-guards.development.cjs.js +2 -2
- package/guards/dist/xstate-guards.development.esm.js +2 -2
- package/guards/dist/xstate-guards.esm.js +2 -2
- package/guards/dist/xstate-guards.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var interpreter = require('../../dist/interpreter-
|
|
5
|
+
var interpreter = require('../../dist/interpreter-a2236840.development.cjs.js');
|
|
6
6
|
require('../../dev/dist/xstate-dev.development.cjs.js');
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -11,21 +11,28 @@ require('../../dev/dist/xstate-dev.development.cjs.js');
|
|
|
11
11
|
* A transition function is a function that takes the current state and an event and returns the next state.
|
|
12
12
|
*
|
|
13
13
|
* @param transition The transition function that returns the next state given the current state and event.
|
|
14
|
-
* @param
|
|
14
|
+
* @param initialContext The initial state of the transition function.
|
|
15
15
|
* @returns Actor logic
|
|
16
16
|
*/
|
|
17
|
-
function fromTransition(transition,
|
|
17
|
+
function fromTransition(transition, initialContext) {
|
|
18
18
|
return {
|
|
19
19
|
config: transition,
|
|
20
20
|
transition: (state, event, actorContext) => {
|
|
21
|
-
return
|
|
21
|
+
return {
|
|
22
|
+
...state,
|
|
23
|
+
context: transition(state.context, event, actorContext)
|
|
24
|
+
};
|
|
22
25
|
},
|
|
23
26
|
getInitialState: (_, input) => {
|
|
24
|
-
return
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
return {
|
|
28
|
+
status: 'active',
|
|
29
|
+
output: undefined,
|
|
30
|
+
error: undefined,
|
|
31
|
+
context: typeof initialContext === 'function' ? initialContext({
|
|
32
|
+
input
|
|
33
|
+
}) : initialContext
|
|
34
|
+
};
|
|
27
35
|
},
|
|
28
|
-
getSnapshot: state => state,
|
|
29
36
|
getPersistedState: state => state,
|
|
30
37
|
restoreState: state => state
|
|
31
38
|
};
|
|
@@ -48,15 +55,15 @@ function fromCallback(invokeCallback) {
|
|
|
48
55
|
}) => {
|
|
49
56
|
if (event.type === interpreter.XSTATE_INIT) {
|
|
50
57
|
const sendBack = eventForParent => {
|
|
51
|
-
if (state.
|
|
58
|
+
if (state.status === 'stopped') {
|
|
52
59
|
return;
|
|
53
60
|
}
|
|
54
61
|
self._parent?.send(eventForParent);
|
|
55
62
|
};
|
|
56
63
|
const receive = newListener => {
|
|
57
|
-
state.
|
|
64
|
+
state._receivers.add(newListener);
|
|
58
65
|
};
|
|
59
|
-
state.
|
|
66
|
+
state._dispose = invokeCallback({
|
|
60
67
|
input: state.input,
|
|
61
68
|
system,
|
|
62
69
|
self: self,
|
|
@@ -66,30 +73,38 @@ function fromCallback(invokeCallback) {
|
|
|
66
73
|
return state;
|
|
67
74
|
}
|
|
68
75
|
if (event.type === interpreter.XSTATE_STOP) {
|
|
69
|
-
state
|
|
70
|
-
|
|
71
|
-
|
|
76
|
+
state = {
|
|
77
|
+
...state,
|
|
78
|
+
status: 'stopped',
|
|
79
|
+
error: undefined
|
|
80
|
+
};
|
|
81
|
+
if (typeof state._dispose === 'function') {
|
|
82
|
+
state._dispose();
|
|
72
83
|
}
|
|
73
84
|
return state;
|
|
74
85
|
}
|
|
75
|
-
state.
|
|
86
|
+
state._receivers.forEach(receiver => receiver(event));
|
|
76
87
|
return state;
|
|
77
88
|
},
|
|
78
89
|
getInitialState: (_, input) => {
|
|
79
90
|
return {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
input
|
|
91
|
+
status: 'active',
|
|
92
|
+
output: undefined,
|
|
93
|
+
error: undefined,
|
|
94
|
+
input,
|
|
95
|
+
_receivers: new Set(),
|
|
96
|
+
_dispose: undefined
|
|
84
97
|
};
|
|
85
98
|
},
|
|
86
|
-
getSnapshot: () => undefined,
|
|
87
99
|
getPersistedState: ({
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
100
|
+
_dispose,
|
|
101
|
+
_receivers,
|
|
102
|
+
...rest
|
|
103
|
+
}) => rest,
|
|
104
|
+
restoreState: state => ({
|
|
105
|
+
_receivers: new Set(),
|
|
106
|
+
_dispose: undefined,
|
|
107
|
+
...state
|
|
93
108
|
})
|
|
94
109
|
};
|
|
95
110
|
}
|
|
@@ -100,62 +115,57 @@ function fromObservable(observableCreator) {
|
|
|
100
115
|
const completeEventType = '$$xstate.complete';
|
|
101
116
|
return {
|
|
102
117
|
config: observableCreator,
|
|
103
|
-
transition: (
|
|
118
|
+
transition: (snapshot, event, {
|
|
104
119
|
self,
|
|
105
120
|
id,
|
|
106
121
|
defer
|
|
107
122
|
}) => {
|
|
108
|
-
if (
|
|
109
|
-
return
|
|
123
|
+
if (snapshot.status !== 'active') {
|
|
124
|
+
return snapshot;
|
|
110
125
|
}
|
|
111
126
|
switch (event.type) {
|
|
112
127
|
case nextEventType:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
return {
|
|
122
|
-
...state,
|
|
123
|
-
data: event.data
|
|
124
|
-
};
|
|
128
|
+
{
|
|
129
|
+
return {
|
|
130
|
+
...snapshot,
|
|
131
|
+
context: event.data
|
|
132
|
+
};
|
|
133
|
+
}
|
|
125
134
|
case errorEventType:
|
|
126
135
|
return {
|
|
127
|
-
...
|
|
136
|
+
...snapshot,
|
|
128
137
|
status: 'error',
|
|
138
|
+
error: event.data,
|
|
129
139
|
input: undefined,
|
|
130
|
-
|
|
131
|
-
// TODO: if we keep this as `data` we should reflect this in the type
|
|
132
|
-
subscription: undefined
|
|
140
|
+
_subscription: undefined
|
|
133
141
|
};
|
|
134
142
|
case completeEventType:
|
|
135
143
|
return {
|
|
136
|
-
...
|
|
144
|
+
...snapshot,
|
|
137
145
|
status: 'done',
|
|
138
146
|
input: undefined,
|
|
139
|
-
|
|
147
|
+
_subscription: undefined
|
|
140
148
|
};
|
|
141
149
|
case interpreter.XSTATE_STOP:
|
|
142
|
-
|
|
150
|
+
snapshot._subscription.unsubscribe();
|
|
143
151
|
return {
|
|
144
|
-
...
|
|
145
|
-
status: '
|
|
152
|
+
...snapshot,
|
|
153
|
+
status: 'stopped',
|
|
146
154
|
input: undefined,
|
|
147
|
-
|
|
155
|
+
_subscription: undefined
|
|
148
156
|
};
|
|
149
157
|
default:
|
|
150
|
-
return
|
|
158
|
+
return snapshot;
|
|
151
159
|
}
|
|
152
160
|
},
|
|
153
161
|
getInitialState: (_, input) => {
|
|
154
162
|
return {
|
|
155
|
-
subscription: undefined,
|
|
156
163
|
status: 'active',
|
|
157
|
-
|
|
158
|
-
|
|
164
|
+
output: undefined,
|
|
165
|
+
error: undefined,
|
|
166
|
+
context: undefined,
|
|
167
|
+
input,
|
|
168
|
+
_subscription: undefined
|
|
159
169
|
};
|
|
160
170
|
},
|
|
161
171
|
start: (state, {
|
|
@@ -166,7 +176,7 @@ function fromObservable(observableCreator) {
|
|
|
166
176
|
// Do not restart a completed observable
|
|
167
177
|
return;
|
|
168
178
|
}
|
|
169
|
-
state.
|
|
179
|
+
state._subscription = observableCreator({
|
|
170
180
|
input: state.input,
|
|
171
181
|
system,
|
|
172
182
|
self
|
|
@@ -190,20 +200,13 @@ function fromObservable(observableCreator) {
|
|
|
190
200
|
}
|
|
191
201
|
});
|
|
192
202
|
},
|
|
193
|
-
getSnapshot: state => state.data,
|
|
194
203
|
getPersistedState: ({
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}) => ({
|
|
199
|
-
status,
|
|
200
|
-
data,
|
|
201
|
-
input
|
|
202
|
-
}),
|
|
203
|
-
getStatus: state => state,
|
|
204
|
+
_subscription,
|
|
205
|
+
...state
|
|
206
|
+
}) => state,
|
|
204
207
|
restoreState: state => ({
|
|
205
208
|
...state,
|
|
206
|
-
|
|
209
|
+
_subscription: undefined
|
|
207
210
|
})
|
|
208
211
|
};
|
|
209
212
|
}
|
|
@@ -233,25 +236,24 @@ function fromEventObservable(lazyObservable) {
|
|
|
233
236
|
return {
|
|
234
237
|
...state,
|
|
235
238
|
status: 'error',
|
|
239
|
+
error: event.data,
|
|
236
240
|
input: undefined,
|
|
237
|
-
|
|
238
|
-
// TODO: if we keep this as `data` we should reflect this in the type
|
|
239
|
-
subscription: undefined
|
|
241
|
+
_subscription: undefined
|
|
240
242
|
};
|
|
241
243
|
case completeEventType:
|
|
242
244
|
return {
|
|
243
245
|
...state,
|
|
244
246
|
status: 'done',
|
|
245
247
|
input: undefined,
|
|
246
|
-
|
|
248
|
+
_subscription: undefined
|
|
247
249
|
};
|
|
248
250
|
case interpreter.XSTATE_STOP:
|
|
249
|
-
state.
|
|
251
|
+
state._subscription.unsubscribe();
|
|
250
252
|
return {
|
|
251
253
|
...state,
|
|
252
|
-
status: '
|
|
254
|
+
status: 'stopped',
|
|
253
255
|
input: undefined,
|
|
254
|
-
|
|
256
|
+
_subscription: undefined
|
|
255
257
|
};
|
|
256
258
|
default:
|
|
257
259
|
return state;
|
|
@@ -259,10 +261,12 @@ function fromEventObservable(lazyObservable) {
|
|
|
259
261
|
},
|
|
260
262
|
getInitialState: (_, input) => {
|
|
261
263
|
return {
|
|
262
|
-
subscription: undefined,
|
|
263
264
|
status: 'active',
|
|
264
|
-
|
|
265
|
-
|
|
265
|
+
output: undefined,
|
|
266
|
+
error: undefined,
|
|
267
|
+
context: undefined,
|
|
268
|
+
input,
|
|
269
|
+
_subscription: undefined
|
|
266
270
|
};
|
|
267
271
|
},
|
|
268
272
|
start: (state, {
|
|
@@ -273,7 +277,7 @@ function fromEventObservable(lazyObservable) {
|
|
|
273
277
|
// Do not restart a completed observable
|
|
274
278
|
return;
|
|
275
279
|
}
|
|
276
|
-
state.
|
|
280
|
+
state._subscription = lazyObservable({
|
|
277
281
|
input: state.input,
|
|
278
282
|
system,
|
|
279
283
|
self
|
|
@@ -294,20 +298,13 @@ function fromEventObservable(lazyObservable) {
|
|
|
294
298
|
}
|
|
295
299
|
});
|
|
296
300
|
},
|
|
297
|
-
getSnapshot: _ => undefined,
|
|
298
301
|
getPersistedState: ({
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
}) => ({
|
|
303
|
-
status,
|
|
304
|
-
data,
|
|
305
|
-
input
|
|
306
|
-
}),
|
|
307
|
-
getStatus: state => state,
|
|
302
|
+
_subscription,
|
|
303
|
+
...state
|
|
304
|
+
}) => state,
|
|
308
305
|
restoreState: state => ({
|
|
309
306
|
...state,
|
|
310
|
-
|
|
307
|
+
_subscription: undefined
|
|
311
308
|
})
|
|
312
309
|
};
|
|
313
310
|
}
|
|
@@ -326,24 +323,26 @@ promiseCreator) {
|
|
|
326
323
|
}
|
|
327
324
|
switch (event.type) {
|
|
328
325
|
case resolveEventType:
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
326
|
+
{
|
|
327
|
+
const resolvedValue = event.data;
|
|
328
|
+
return {
|
|
329
|
+
...state,
|
|
330
|
+
status: 'done',
|
|
331
|
+
output: resolvedValue,
|
|
332
|
+
input: undefined
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
335
|
case rejectEventType:
|
|
336
336
|
return {
|
|
337
337
|
...state,
|
|
338
338
|
status: 'error',
|
|
339
|
-
|
|
340
|
-
// TODO: if we keep this as `data` we should reflect this in the type
|
|
339
|
+
error: event.data,
|
|
341
340
|
input: undefined
|
|
342
341
|
};
|
|
343
342
|
case interpreter.XSTATE_STOP:
|
|
344
343
|
return {
|
|
345
344
|
...state,
|
|
346
|
-
status: '
|
|
345
|
+
status: 'stopped',
|
|
347
346
|
input: undefined
|
|
348
347
|
};
|
|
349
348
|
default:
|
|
@@ -365,8 +364,7 @@ promiseCreator) {
|
|
|
365
364
|
self
|
|
366
365
|
}));
|
|
367
366
|
resolvedPromise.then(response => {
|
|
368
|
-
|
|
369
|
-
if (self._state.status !== 'active') {
|
|
367
|
+
if (self.getSnapshot().status !== 'active') {
|
|
370
368
|
return;
|
|
371
369
|
}
|
|
372
370
|
self.send({
|
|
@@ -374,8 +372,7 @@ promiseCreator) {
|
|
|
374
372
|
data: response
|
|
375
373
|
});
|
|
376
374
|
}, errorData => {
|
|
377
|
-
|
|
378
|
-
if (self._state.status !== 'active') {
|
|
375
|
+
if (self.getSnapshot().status !== 'active') {
|
|
379
376
|
return;
|
|
380
377
|
}
|
|
381
378
|
self.send({
|
|
@@ -387,12 +384,11 @@ promiseCreator) {
|
|
|
387
384
|
getInitialState: (_, input) => {
|
|
388
385
|
return {
|
|
389
386
|
status: 'active',
|
|
390
|
-
|
|
387
|
+
output: undefined,
|
|
388
|
+
error: undefined,
|
|
391
389
|
input
|
|
392
390
|
};
|
|
393
391
|
},
|
|
394
|
-
getSnapshot: state => state.data,
|
|
395
|
-
getStatus: state => state,
|
|
396
392
|
getPersistedState: state => state,
|
|
397
393
|
restoreState: state => state
|
|
398
394
|
};
|