xstate 5.0.0-beta.48 → 5.0.0-beta.50
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 +2 -2
- package/actions/dist/xstate-actions.development.cjs.js +2 -2
- package/actions/dist/xstate-actions.development.esm.js +2 -2
- package/actions/dist/xstate-actions.esm.js +2 -2
- 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 +53 -74
- package/actors/dist/xstate-actors.development.cjs.js +53 -74
- package/actors/dist/xstate-actors.development.esm.js +53 -74
- package/actors/dist/xstate-actors.esm.js +53 -74
- 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/State.d.ts +20 -17
- package/dist/declarations/src/StateMachine.d.ts +13 -14
- package/dist/declarations/src/actors/callback.d.ts +6 -9
- package/dist/declarations/src/actors/index.d.ts +3 -3
- package/dist/declarations/src/actors/observable.d.ts +5 -5
- package/dist/declarations/src/actors/promise.d.ts +6 -6
- package/dist/declarations/src/actors/transition.d.ts +3 -3
- package/dist/declarations/src/createMachine.d.ts +17 -2
- package/dist/declarations/src/interpreter.d.ts +2 -2
- package/dist/declarations/src/setup.d.ts +19 -3
- package/dist/declarations/src/stateUtils.d.ts +1 -1
- package/dist/declarations/src/types.d.ts +19 -13
- package/dist/declarations/src/utils.d.ts +0 -1
- package/dist/{raise-84fd7a92.esm.js → raise-32ec7226.esm.js} +94 -33
- package/dist/{raise-286581d5.development.esm.js → raise-6c05c91b.development.esm.js} +94 -33
- package/dist/{raise-cd0dde81.cjs.js → raise-8176cd35.cjs.js} +93 -33
- package/dist/{raise-0eafc1df.development.cjs.js → raise-dc9c2c58.development.cjs.js} +93 -33
- package/dist/{send-f0a3179c.development.esm.js → send-2b001f05.development.esm.js} +2 -7
- package/dist/{send-355ba004.cjs.js → send-7f3db830.cjs.js} +2 -7
- package/dist/{send-ae491737.esm.js → send-88351a33.esm.js} +2 -7
- package/dist/{send-32a63473.development.cjs.js → send-df1c8ef2.development.cjs.js} +2 -7
- package/dist/xstate.cjs.js +11 -20
- package/dist/xstate.development.cjs.js +11 -20
- package/dist/xstate.development.esm.js +13 -22
- package/dist/xstate.esm.js +13 -22
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.cjs.js +1 -1
- package/guards/dist/xstate-guards.development.cjs.js +1 -1
- package/guards/dist/xstate-guards.development.esm.js +1 -1
- package/guards/dist/xstate-guards.esm.js +1 -1
- 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 guards_dist_xstateGuards = require('../../dist/raise-
|
|
5
|
+
var guards_dist_xstateGuards = require('../../dist/raise-8176cd35.cjs.js');
|
|
6
6
|
require('../../dev/dist/xstate-dev.cjs.js');
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -87,6 +87,7 @@ function fromTransition(transition, initialContext) {
|
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
const instanceStates = /* #__PURE__ */new WeakMap();
|
|
90
91
|
/**
|
|
91
92
|
* An actor logic creator which returns callback logic as defined by a callback function.
|
|
92
93
|
*
|
|
@@ -147,51 +148,46 @@ function fromTransition(transition, initialContext) {
|
|
|
147
148
|
function fromCallback(invokeCallback) {
|
|
148
149
|
const logic = {
|
|
149
150
|
config: invokeCallback,
|
|
150
|
-
start: (
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
self,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
151
|
+
start: (state, actorScope) => {
|
|
152
|
+
const {
|
|
153
|
+
self,
|
|
154
|
+
system
|
|
155
|
+
} = actorScope;
|
|
156
|
+
const callbackState = {
|
|
157
|
+
receivers: undefined,
|
|
158
|
+
dispose: undefined
|
|
159
|
+
};
|
|
160
|
+
instanceStates.set(self, callbackState);
|
|
161
|
+
callbackState.dispose = invokeCallback({
|
|
162
|
+
input: state.input,
|
|
163
|
+
system,
|
|
164
|
+
self,
|
|
165
|
+
sendBack: event => {
|
|
166
|
+
if (self.getSnapshot().status === 'stopped') {
|
|
165
167
|
return;
|
|
166
168
|
}
|
|
167
169
|
if (self._parent) {
|
|
168
|
-
system._relay(self, self._parent,
|
|
170
|
+
system._relay(self, self._parent, event);
|
|
169
171
|
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
receive
|
|
180
|
-
});
|
|
181
|
-
return state;
|
|
182
|
-
}
|
|
172
|
+
},
|
|
173
|
+
receive: listener => {
|
|
174
|
+
callbackState.receivers ??= new Set();
|
|
175
|
+
callbackState.receivers.add(listener);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
},
|
|
179
|
+
transition: (state, event, actorScope) => {
|
|
180
|
+
const callbackState = instanceStates.get(actorScope.self);
|
|
183
181
|
if (event.type === guards_dist_xstateGuards.XSTATE_STOP) {
|
|
184
182
|
state = {
|
|
185
183
|
...state,
|
|
186
184
|
status: 'stopped',
|
|
187
185
|
error: undefined
|
|
188
186
|
};
|
|
189
|
-
|
|
190
|
-
state._dispose();
|
|
191
|
-
}
|
|
187
|
+
callbackState.dispose?.();
|
|
192
188
|
return state;
|
|
193
189
|
}
|
|
194
|
-
|
|
190
|
+
callbackState.receivers?.forEach(receiver => receiver(event));
|
|
195
191
|
return state;
|
|
196
192
|
},
|
|
197
193
|
getInitialState: (_, input) => {
|
|
@@ -199,25 +195,18 @@ function fromCallback(invokeCallback) {
|
|
|
199
195
|
status: 'active',
|
|
200
196
|
output: undefined,
|
|
201
197
|
error: undefined,
|
|
202
|
-
input
|
|
203
|
-
_receivers: new Set(),
|
|
204
|
-
_dispose: undefined
|
|
198
|
+
input
|
|
205
199
|
};
|
|
206
200
|
},
|
|
207
|
-
getPersistedState:
|
|
208
|
-
|
|
209
|
-
_receivers,
|
|
210
|
-
...rest
|
|
211
|
-
}) => rest,
|
|
212
|
-
restoreState: state => ({
|
|
213
|
-
_receivers: new Set(),
|
|
214
|
-
_dispose: undefined,
|
|
215
|
-
...state
|
|
216
|
-
})
|
|
201
|
+
getPersistedState: state => state,
|
|
202
|
+
restoreState: state => state
|
|
217
203
|
};
|
|
218
204
|
return logic;
|
|
219
205
|
}
|
|
220
206
|
|
|
207
|
+
const XSTATE_OBSERVABLE_NEXT = 'xstate.observable.next';
|
|
208
|
+
const XSTATE_OBSERVABLE_ERROR = 'xstate.observable.error';
|
|
209
|
+
const XSTATE_OBSERVABLE_COMPLETE = 'xstate.observable.complete';
|
|
221
210
|
/**
|
|
222
211
|
* Observable actor logic is described by an observable stream of values. Actors created from observable logic (“observable actors”) can:
|
|
223
212
|
*
|
|
@@ -259,10 +248,6 @@ function fromCallback(invokeCallback) {
|
|
|
259
248
|
* @see {@link Subscribable} interface in XState, which is based on and compatible with RxJS Observable.
|
|
260
249
|
*/
|
|
261
250
|
function fromObservable(observableCreator) {
|
|
262
|
-
const nextEventType = '$$xstate.next';
|
|
263
|
-
const errorEventType = '$$xstate.error';
|
|
264
|
-
const completeEventType = '$$xstate.complete';
|
|
265
|
-
|
|
266
251
|
// TODO: add event types
|
|
267
252
|
const logic = {
|
|
268
253
|
config: observableCreator,
|
|
@@ -276,7 +261,7 @@ function fromObservable(observableCreator) {
|
|
|
276
261
|
return snapshot;
|
|
277
262
|
}
|
|
278
263
|
switch (event.type) {
|
|
279
|
-
case
|
|
264
|
+
case XSTATE_OBSERVABLE_NEXT:
|
|
280
265
|
{
|
|
281
266
|
const newSnapshot = {
|
|
282
267
|
...snapshot,
|
|
@@ -284,7 +269,7 @@ function fromObservable(observableCreator) {
|
|
|
284
269
|
};
|
|
285
270
|
return newSnapshot;
|
|
286
271
|
}
|
|
287
|
-
case
|
|
272
|
+
case XSTATE_OBSERVABLE_ERROR:
|
|
288
273
|
return {
|
|
289
274
|
...snapshot,
|
|
290
275
|
status: 'error',
|
|
@@ -292,7 +277,7 @@ function fromObservable(observableCreator) {
|
|
|
292
277
|
input: undefined,
|
|
293
278
|
_subscription: undefined
|
|
294
279
|
};
|
|
295
|
-
case
|
|
280
|
+
case XSTATE_OBSERVABLE_COMPLETE:
|
|
296
281
|
return {
|
|
297
282
|
...snapshot,
|
|
298
283
|
status: 'done',
|
|
@@ -336,19 +321,19 @@ function fromObservable(observableCreator) {
|
|
|
336
321
|
}).subscribe({
|
|
337
322
|
next: value => {
|
|
338
323
|
system._relay(self, self, {
|
|
339
|
-
type:
|
|
324
|
+
type: XSTATE_OBSERVABLE_NEXT,
|
|
340
325
|
data: value
|
|
341
326
|
});
|
|
342
327
|
},
|
|
343
328
|
error: err => {
|
|
344
329
|
system._relay(self, self, {
|
|
345
|
-
type:
|
|
330
|
+
type: XSTATE_OBSERVABLE_ERROR,
|
|
346
331
|
data: err
|
|
347
332
|
});
|
|
348
333
|
},
|
|
349
334
|
complete: () => {
|
|
350
335
|
system._relay(self, self, {
|
|
351
|
-
type:
|
|
336
|
+
type: XSTATE_OBSERVABLE_COMPLETE
|
|
352
337
|
});
|
|
353
338
|
}
|
|
354
339
|
});
|
|
@@ -409,11 +394,7 @@ function fromObservable(observableCreator) {
|
|
|
409
394
|
* canvasActor.start();
|
|
410
395
|
* ```
|
|
411
396
|
*/
|
|
412
|
-
|
|
413
397
|
function fromEventObservable(lazyObservable) {
|
|
414
|
-
const errorEventType = '$$xstate.error';
|
|
415
|
-
const completeEventType = '$$xstate.complete';
|
|
416
|
-
|
|
417
398
|
// TODO: event types
|
|
418
399
|
const logic = {
|
|
419
400
|
config: lazyObservable,
|
|
@@ -422,7 +403,7 @@ function fromEventObservable(lazyObservable) {
|
|
|
422
403
|
return state;
|
|
423
404
|
}
|
|
424
405
|
switch (event.type) {
|
|
425
|
-
case
|
|
406
|
+
case XSTATE_OBSERVABLE_ERROR:
|
|
426
407
|
return {
|
|
427
408
|
...state,
|
|
428
409
|
status: 'error',
|
|
@@ -430,7 +411,7 @@ function fromEventObservable(lazyObservable) {
|
|
|
430
411
|
input: undefined,
|
|
431
412
|
_subscription: undefined
|
|
432
413
|
};
|
|
433
|
-
case
|
|
414
|
+
case XSTATE_OBSERVABLE_COMPLETE:
|
|
434
415
|
return {
|
|
435
416
|
...state,
|
|
436
417
|
status: 'done',
|
|
@@ -479,13 +460,13 @@ function fromEventObservable(lazyObservable) {
|
|
|
479
460
|
},
|
|
480
461
|
error: err => {
|
|
481
462
|
system._relay(self, self, {
|
|
482
|
-
type:
|
|
463
|
+
type: XSTATE_OBSERVABLE_ERROR,
|
|
483
464
|
data: err
|
|
484
465
|
});
|
|
485
466
|
},
|
|
486
467
|
complete: () => {
|
|
487
468
|
system._relay(self, self, {
|
|
488
|
-
type:
|
|
469
|
+
type: XSTATE_OBSERVABLE_COMPLETE
|
|
489
470
|
});
|
|
490
471
|
}
|
|
491
472
|
});
|
|
@@ -502,8 +483,8 @@ function fromEventObservable(lazyObservable) {
|
|
|
502
483
|
return logic;
|
|
503
484
|
}
|
|
504
485
|
|
|
505
|
-
const
|
|
506
|
-
const
|
|
486
|
+
const XSTATE_PROMISE_RESOLVE = 'xstate.promise.resolve';
|
|
487
|
+
const XSTATE_PROMISE_REJECT = 'xstate.promise.reject';
|
|
507
488
|
/**
|
|
508
489
|
* An actor logic creator which returns promise logic as defined by an async process that resolves or rejects after some time.
|
|
509
490
|
*
|
|
@@ -548,9 +529,7 @@ const rejectEventType = '$$xstate.reject';
|
|
|
548
529
|
* // }
|
|
549
530
|
* ```
|
|
550
531
|
*/
|
|
551
|
-
function fromPromise(
|
|
552
|
-
// TODO: add types
|
|
553
|
-
promiseCreator) {
|
|
532
|
+
function fromPromise(promiseCreator) {
|
|
554
533
|
// TODO: add event types
|
|
555
534
|
const logic = {
|
|
556
535
|
config: promiseCreator,
|
|
@@ -559,7 +538,7 @@ promiseCreator) {
|
|
|
559
538
|
return state;
|
|
560
539
|
}
|
|
561
540
|
switch (event.type) {
|
|
562
|
-
case
|
|
541
|
+
case XSTATE_PROMISE_RESOLVE:
|
|
563
542
|
{
|
|
564
543
|
const resolvedValue = event.data;
|
|
565
544
|
return {
|
|
@@ -569,7 +548,7 @@ promiseCreator) {
|
|
|
569
548
|
input: undefined
|
|
570
549
|
};
|
|
571
550
|
}
|
|
572
|
-
case
|
|
551
|
+
case XSTATE_PROMISE_REJECT:
|
|
573
552
|
return {
|
|
574
553
|
...state,
|
|
575
554
|
status: 'error',
|
|
@@ -605,7 +584,7 @@ promiseCreator) {
|
|
|
605
584
|
return;
|
|
606
585
|
}
|
|
607
586
|
system._relay(self, self, {
|
|
608
|
-
type:
|
|
587
|
+
type: XSTATE_PROMISE_RESOLVE,
|
|
609
588
|
data: response
|
|
610
589
|
});
|
|
611
590
|
}, errorData => {
|
|
@@ -613,7 +592,7 @@ promiseCreator) {
|
|
|
613
592
|
return;
|
|
614
593
|
}
|
|
615
594
|
system._relay(self, self, {
|
|
616
|
-
type:
|
|
595
|
+
type: XSTATE_PROMISE_REJECT,
|
|
617
596
|
data: errorData
|
|
618
597
|
});
|
|
619
598
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var guards_dist_xstateGuards = require('../../dist/raise-
|
|
5
|
+
var guards_dist_xstateGuards = require('../../dist/raise-dc9c2c58.development.cjs.js');
|
|
6
6
|
require('../../dev/dist/xstate-dev.development.cjs.js');
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -87,6 +87,7 @@ function fromTransition(transition, initialContext) {
|
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
const instanceStates = /* #__PURE__ */new WeakMap();
|
|
90
91
|
/**
|
|
91
92
|
* An actor logic creator which returns callback logic as defined by a callback function.
|
|
92
93
|
*
|
|
@@ -147,51 +148,46 @@ function fromTransition(transition, initialContext) {
|
|
|
147
148
|
function fromCallback(invokeCallback) {
|
|
148
149
|
const logic = {
|
|
149
150
|
config: invokeCallback,
|
|
150
|
-
start: (
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
self,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
151
|
+
start: (state, actorScope) => {
|
|
152
|
+
const {
|
|
153
|
+
self,
|
|
154
|
+
system
|
|
155
|
+
} = actorScope;
|
|
156
|
+
const callbackState = {
|
|
157
|
+
receivers: undefined,
|
|
158
|
+
dispose: undefined
|
|
159
|
+
};
|
|
160
|
+
instanceStates.set(self, callbackState);
|
|
161
|
+
callbackState.dispose = invokeCallback({
|
|
162
|
+
input: state.input,
|
|
163
|
+
system,
|
|
164
|
+
self,
|
|
165
|
+
sendBack: event => {
|
|
166
|
+
if (self.getSnapshot().status === 'stopped') {
|
|
165
167
|
return;
|
|
166
168
|
}
|
|
167
169
|
if (self._parent) {
|
|
168
|
-
system._relay(self, self._parent,
|
|
170
|
+
system._relay(self, self._parent, event);
|
|
169
171
|
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
receive
|
|
180
|
-
});
|
|
181
|
-
return state;
|
|
182
|
-
}
|
|
172
|
+
},
|
|
173
|
+
receive: listener => {
|
|
174
|
+
callbackState.receivers ??= new Set();
|
|
175
|
+
callbackState.receivers.add(listener);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
},
|
|
179
|
+
transition: (state, event, actorScope) => {
|
|
180
|
+
const callbackState = instanceStates.get(actorScope.self);
|
|
183
181
|
if (event.type === guards_dist_xstateGuards.XSTATE_STOP) {
|
|
184
182
|
state = {
|
|
185
183
|
...state,
|
|
186
184
|
status: 'stopped',
|
|
187
185
|
error: undefined
|
|
188
186
|
};
|
|
189
|
-
|
|
190
|
-
state._dispose();
|
|
191
|
-
}
|
|
187
|
+
callbackState.dispose?.();
|
|
192
188
|
return state;
|
|
193
189
|
}
|
|
194
|
-
|
|
190
|
+
callbackState.receivers?.forEach(receiver => receiver(event));
|
|
195
191
|
return state;
|
|
196
192
|
},
|
|
197
193
|
getInitialState: (_, input) => {
|
|
@@ -199,25 +195,18 @@ function fromCallback(invokeCallback) {
|
|
|
199
195
|
status: 'active',
|
|
200
196
|
output: undefined,
|
|
201
197
|
error: undefined,
|
|
202
|
-
input
|
|
203
|
-
_receivers: new Set(),
|
|
204
|
-
_dispose: undefined
|
|
198
|
+
input
|
|
205
199
|
};
|
|
206
200
|
},
|
|
207
|
-
getPersistedState:
|
|
208
|
-
|
|
209
|
-
_receivers,
|
|
210
|
-
...rest
|
|
211
|
-
}) => rest,
|
|
212
|
-
restoreState: state => ({
|
|
213
|
-
_receivers: new Set(),
|
|
214
|
-
_dispose: undefined,
|
|
215
|
-
...state
|
|
216
|
-
})
|
|
201
|
+
getPersistedState: state => state,
|
|
202
|
+
restoreState: state => state
|
|
217
203
|
};
|
|
218
204
|
return logic;
|
|
219
205
|
}
|
|
220
206
|
|
|
207
|
+
const XSTATE_OBSERVABLE_NEXT = 'xstate.observable.next';
|
|
208
|
+
const XSTATE_OBSERVABLE_ERROR = 'xstate.observable.error';
|
|
209
|
+
const XSTATE_OBSERVABLE_COMPLETE = 'xstate.observable.complete';
|
|
221
210
|
/**
|
|
222
211
|
* Observable actor logic is described by an observable stream of values. Actors created from observable logic (“observable actors”) can:
|
|
223
212
|
*
|
|
@@ -259,10 +248,6 @@ function fromCallback(invokeCallback) {
|
|
|
259
248
|
* @see {@link Subscribable} interface in XState, which is based on and compatible with RxJS Observable.
|
|
260
249
|
*/
|
|
261
250
|
function fromObservable(observableCreator) {
|
|
262
|
-
const nextEventType = '$$xstate.next';
|
|
263
|
-
const errorEventType = '$$xstate.error';
|
|
264
|
-
const completeEventType = '$$xstate.complete';
|
|
265
|
-
|
|
266
251
|
// TODO: add event types
|
|
267
252
|
const logic = {
|
|
268
253
|
config: observableCreator,
|
|
@@ -276,7 +261,7 @@ function fromObservable(observableCreator) {
|
|
|
276
261
|
return snapshot;
|
|
277
262
|
}
|
|
278
263
|
switch (event.type) {
|
|
279
|
-
case
|
|
264
|
+
case XSTATE_OBSERVABLE_NEXT:
|
|
280
265
|
{
|
|
281
266
|
const newSnapshot = {
|
|
282
267
|
...snapshot,
|
|
@@ -284,7 +269,7 @@ function fromObservable(observableCreator) {
|
|
|
284
269
|
};
|
|
285
270
|
return newSnapshot;
|
|
286
271
|
}
|
|
287
|
-
case
|
|
272
|
+
case XSTATE_OBSERVABLE_ERROR:
|
|
288
273
|
return {
|
|
289
274
|
...snapshot,
|
|
290
275
|
status: 'error',
|
|
@@ -292,7 +277,7 @@ function fromObservable(observableCreator) {
|
|
|
292
277
|
input: undefined,
|
|
293
278
|
_subscription: undefined
|
|
294
279
|
};
|
|
295
|
-
case
|
|
280
|
+
case XSTATE_OBSERVABLE_COMPLETE:
|
|
296
281
|
return {
|
|
297
282
|
...snapshot,
|
|
298
283
|
status: 'done',
|
|
@@ -336,19 +321,19 @@ function fromObservable(observableCreator) {
|
|
|
336
321
|
}).subscribe({
|
|
337
322
|
next: value => {
|
|
338
323
|
system._relay(self, self, {
|
|
339
|
-
type:
|
|
324
|
+
type: XSTATE_OBSERVABLE_NEXT,
|
|
340
325
|
data: value
|
|
341
326
|
});
|
|
342
327
|
},
|
|
343
328
|
error: err => {
|
|
344
329
|
system._relay(self, self, {
|
|
345
|
-
type:
|
|
330
|
+
type: XSTATE_OBSERVABLE_ERROR,
|
|
346
331
|
data: err
|
|
347
332
|
});
|
|
348
333
|
},
|
|
349
334
|
complete: () => {
|
|
350
335
|
system._relay(self, self, {
|
|
351
|
-
type:
|
|
336
|
+
type: XSTATE_OBSERVABLE_COMPLETE
|
|
352
337
|
});
|
|
353
338
|
}
|
|
354
339
|
});
|
|
@@ -409,11 +394,7 @@ function fromObservable(observableCreator) {
|
|
|
409
394
|
* canvasActor.start();
|
|
410
395
|
* ```
|
|
411
396
|
*/
|
|
412
|
-
|
|
413
397
|
function fromEventObservable(lazyObservable) {
|
|
414
|
-
const errorEventType = '$$xstate.error';
|
|
415
|
-
const completeEventType = '$$xstate.complete';
|
|
416
|
-
|
|
417
398
|
// TODO: event types
|
|
418
399
|
const logic = {
|
|
419
400
|
config: lazyObservable,
|
|
@@ -422,7 +403,7 @@ function fromEventObservable(lazyObservable) {
|
|
|
422
403
|
return state;
|
|
423
404
|
}
|
|
424
405
|
switch (event.type) {
|
|
425
|
-
case
|
|
406
|
+
case XSTATE_OBSERVABLE_ERROR:
|
|
426
407
|
return {
|
|
427
408
|
...state,
|
|
428
409
|
status: 'error',
|
|
@@ -430,7 +411,7 @@ function fromEventObservable(lazyObservable) {
|
|
|
430
411
|
input: undefined,
|
|
431
412
|
_subscription: undefined
|
|
432
413
|
};
|
|
433
|
-
case
|
|
414
|
+
case XSTATE_OBSERVABLE_COMPLETE:
|
|
434
415
|
return {
|
|
435
416
|
...state,
|
|
436
417
|
status: 'done',
|
|
@@ -479,13 +460,13 @@ function fromEventObservable(lazyObservable) {
|
|
|
479
460
|
},
|
|
480
461
|
error: err => {
|
|
481
462
|
system._relay(self, self, {
|
|
482
|
-
type:
|
|
463
|
+
type: XSTATE_OBSERVABLE_ERROR,
|
|
483
464
|
data: err
|
|
484
465
|
});
|
|
485
466
|
},
|
|
486
467
|
complete: () => {
|
|
487
468
|
system._relay(self, self, {
|
|
488
|
-
type:
|
|
469
|
+
type: XSTATE_OBSERVABLE_COMPLETE
|
|
489
470
|
});
|
|
490
471
|
}
|
|
491
472
|
});
|
|
@@ -502,8 +483,8 @@ function fromEventObservable(lazyObservable) {
|
|
|
502
483
|
return logic;
|
|
503
484
|
}
|
|
504
485
|
|
|
505
|
-
const
|
|
506
|
-
const
|
|
486
|
+
const XSTATE_PROMISE_RESOLVE = 'xstate.promise.resolve';
|
|
487
|
+
const XSTATE_PROMISE_REJECT = 'xstate.promise.reject';
|
|
507
488
|
/**
|
|
508
489
|
* An actor logic creator which returns promise logic as defined by an async process that resolves or rejects after some time.
|
|
509
490
|
*
|
|
@@ -548,9 +529,7 @@ const rejectEventType = '$$xstate.reject';
|
|
|
548
529
|
* // }
|
|
549
530
|
* ```
|
|
550
531
|
*/
|
|
551
|
-
function fromPromise(
|
|
552
|
-
// TODO: add types
|
|
553
|
-
promiseCreator) {
|
|
532
|
+
function fromPromise(promiseCreator) {
|
|
554
533
|
// TODO: add event types
|
|
555
534
|
const logic = {
|
|
556
535
|
config: promiseCreator,
|
|
@@ -559,7 +538,7 @@ promiseCreator) {
|
|
|
559
538
|
return state;
|
|
560
539
|
}
|
|
561
540
|
switch (event.type) {
|
|
562
|
-
case
|
|
541
|
+
case XSTATE_PROMISE_RESOLVE:
|
|
563
542
|
{
|
|
564
543
|
const resolvedValue = event.data;
|
|
565
544
|
return {
|
|
@@ -569,7 +548,7 @@ promiseCreator) {
|
|
|
569
548
|
input: undefined
|
|
570
549
|
};
|
|
571
550
|
}
|
|
572
|
-
case
|
|
551
|
+
case XSTATE_PROMISE_REJECT:
|
|
573
552
|
return {
|
|
574
553
|
...state,
|
|
575
554
|
status: 'error',
|
|
@@ -605,7 +584,7 @@ promiseCreator) {
|
|
|
605
584
|
return;
|
|
606
585
|
}
|
|
607
586
|
system._relay(self, self, {
|
|
608
|
-
type:
|
|
587
|
+
type: XSTATE_PROMISE_RESOLVE,
|
|
609
588
|
data: response
|
|
610
589
|
});
|
|
611
590
|
}, errorData => {
|
|
@@ -613,7 +592,7 @@ promiseCreator) {
|
|
|
613
592
|
return;
|
|
614
593
|
}
|
|
615
594
|
system._relay(self, self, {
|
|
616
|
-
type:
|
|
595
|
+
type: XSTATE_PROMISE_REJECT,
|
|
617
596
|
data: errorData
|
|
618
597
|
});
|
|
619
598
|
});
|