xstate 5.0.0-beta.19 → 5.0.0-beta.21
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 +1 -1
- package/actions/dist/xstate-actions.development.cjs.js +1 -1
- package/actions/dist/xstate-actions.development.esm.js +1 -1
- 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.js +1 -1
- package/actors/dist/xstate-actors.development.cjs.js +1 -1
- package/actors/dist/xstate-actors.development.esm.js +1 -1
- 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/dist/{actions-72105f77.development.esm.js → actions-49f0501e.development.esm.js} +421 -352
- package/dist/{actions-3b74fb92.esm.js → actions-5039c951.esm.js} +489 -423
- package/dist/{actions-bce11b97.development.cjs.js → actions-a95d2e66.development.cjs.js} +421 -351
- package/dist/{actions-2d912781.cjs.js → actions-c619a105.cjs.js} +489 -422
- package/dist/declarations/src/Machine.d.ts +2 -2
- package/dist/declarations/src/State.d.ts +12 -4
- package/dist/declarations/src/StateMachine.d.ts +17 -16
- package/dist/declarations/src/StateNode.d.ts +6 -6
- package/dist/declarations/src/actions/send.d.ts +1 -1
- package/dist/declarations/src/actions.d.ts +2 -2
- package/dist/declarations/src/actors/callback.d.ts +16 -6
- package/dist/declarations/src/actors/index.d.ts +4 -4
- package/dist/declarations/src/actors/observable.d.ts +14 -11
- package/dist/declarations/src/actors/promise.d.ts +14 -8
- package/dist/declarations/src/actors/transition.d.ts +6 -6
- package/dist/declarations/src/guards.d.ts +2 -2
- package/dist/declarations/src/stateUtils.d.ts +8 -8
- package/dist/declarations/src/typegenTypes.d.ts +15 -17
- package/dist/declarations/src/types.d.ts +131 -79
- package/dist/declarations/src/utils.d.ts +3 -3
- package/dist/xstate.cjs.js +12 -12
- package/dist/xstate.development.cjs.js +12 -12
- package/dist/xstate.development.esm.js +13 -13
- package/dist/xstate.esm.js +13 -13
- 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
|
@@ -3,8 +3,19 @@ import type { State } from "./State.js";
|
|
|
3
3
|
import type { ActorStatus, Clock, Interpreter } from "./interpreter.js";
|
|
4
4
|
import type { StateMachine } from "./StateMachine.js";
|
|
5
5
|
import { TypegenDisabled, ResolveTypegenMeta, TypegenConstraint, MarkAllImplementationsAsProvided, AreAllImplementationsAssumedToBeProvided } from "./typegenTypes.js";
|
|
6
|
-
import {
|
|
7
|
-
|
|
6
|
+
import { PromiseActorLogic } from "./actors/promise.js";
|
|
7
|
+
/**
|
|
8
|
+
* `T | unknown` reduces to `unknown` and that can be problematic when it comes to contextual typing.
|
|
9
|
+
* It especially is a problem when the union has a function member, like here:
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* declare function test(cbOrVal: ((arg: number) => unknown) | unknown): void;
|
|
13
|
+
* test((arg) => {}) // oops, implicit any
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* This type can be used to avoid this problem. This union represents the same value space as `unknown`.
|
|
17
|
+
*/
|
|
18
|
+
export type NonReducibleUnknown = {} | null | undefined;
|
|
8
19
|
export type AnyFunction = (...args: any[]) => any;
|
|
9
20
|
type ReturnTypeOrValue<T> = T extends AnyFunction ? ReturnType<T> : T;
|
|
10
21
|
export type IsNever<T> = [T] extends [never] ? true : false;
|
|
@@ -14,11 +25,12 @@ export type Compute<A extends any> = {
|
|
|
14
25
|
export type Prop<T, K> = K extends keyof T ? T[K] : never;
|
|
15
26
|
export type Values<T> = T[keyof T];
|
|
16
27
|
export type Merge<M, N> = Omit<M, keyof N> & N;
|
|
28
|
+
export type IndexByProp<T extends Record<P, string>, P extends keyof T> = {
|
|
29
|
+
[E in T as E[P]]: E;
|
|
30
|
+
};
|
|
17
31
|
export type IndexByType<T extends {
|
|
18
32
|
type: string;
|
|
19
|
-
}> =
|
|
20
|
-
[K in T['type']]: T extends any ? (K extends T['type'] ? T : never) : never;
|
|
21
|
-
};
|
|
33
|
+
}> = IndexByProp<T, 'type'>;
|
|
22
34
|
export type Equals<A1 extends any, A2 extends any> = (<A>() => A extends A2 ? true : false) extends <A>() => A extends A1 ? true : false ? true : false;
|
|
23
35
|
export type IsAny<T> = Equals<T, any>;
|
|
24
36
|
export type Cast<A, B> = A extends B ? A : B;
|
|
@@ -55,12 +67,14 @@ export type MachineContext = Record<string, any>;
|
|
|
55
67
|
export interface ActionArgs<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> extends UnifiedArg<TContext, TEvent> {
|
|
56
68
|
action: TAction;
|
|
57
69
|
}
|
|
58
|
-
export type
|
|
70
|
+
export type InputFrom<T extends AnyActorLogic> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TActions, infer _TActors, infer TInput, infer _TResolvedTypesMeta> ? TInput : T extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer _TPersisted, infer _TSystem, infer TInput> ? TInput : never;
|
|
71
|
+
export type OutputFrom<T extends AnyActorLogic> = T extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer _TPersisted, infer _TSystem, infer _TInput, infer TOutput> ? TOutput : never;
|
|
72
|
+
export type Spawner = <T extends AnyActorLogic | string>(// TODO: read string from machine logic keys
|
|
59
73
|
logic: T, options?: Partial<{
|
|
60
74
|
id: string;
|
|
61
75
|
systemId?: string;
|
|
62
|
-
input: any;
|
|
63
|
-
}>) => T
|
|
76
|
+
input: T extends AnyActorLogic ? InputFrom<T> : any;
|
|
77
|
+
}>) => ActorRefFrom<T>;
|
|
64
78
|
export interface AssignArgs<TContext extends MachineContext, TExpressionEvent extends EventObject> extends ActionArgs<TContext, TExpressionEvent> {
|
|
65
79
|
spawn: Spawner;
|
|
66
80
|
}
|
|
@@ -96,9 +110,9 @@ export interface DefaultGuardObject<TContext extends MachineContext, TEvent exte
|
|
|
96
110
|
children?: Array<GuardObject<TContext, TEvent>>;
|
|
97
111
|
predicate?: GuardPredicate<TContext, TEvent>;
|
|
98
112
|
}
|
|
99
|
-
export type GuardEvaluator<TContext extends MachineContext, TEvent extends EventObject> = (guard: GuardDefinition<TContext, TEvent>, context: TContext, event: TEvent, state: State<TContext, TEvent>) => boolean;
|
|
113
|
+
export type GuardEvaluator<TContext extends MachineContext, TEvent extends EventObject> = (guard: GuardDefinition<TContext, TEvent>, context: TContext, event: TEvent, state: State<TContext, TEvent, TODO>) => boolean;
|
|
100
114
|
export interface GuardArgs<TContext extends MachineContext, TEvent extends EventObject> {
|
|
101
|
-
state: State<TContext, TEvent,
|
|
115
|
+
state: State<TContext, TEvent, TODO>;
|
|
102
116
|
guard: GuardDefinition<TContext, TEvent>;
|
|
103
117
|
evaluate: GuardEvaluator<TContext, TEvent>;
|
|
104
118
|
}
|
|
@@ -144,14 +158,6 @@ export interface InitialTransitionConfig<TContext extends MachineContext, TEvent
|
|
|
144
158
|
target: TransitionTarget;
|
|
145
159
|
}
|
|
146
160
|
export type Transition<TContext extends MachineContext, TEvent extends EventObject = EventObject> = string | TransitionConfig<TContext, TEvent> | ConditionalTransitionConfig<TContext, TEvent>;
|
|
147
|
-
export type Receiver<TEvent extends EventObject> = (listener: {
|
|
148
|
-
bivarianceHack(event: TEvent): void;
|
|
149
|
-
}['bivarianceHack']) => void;
|
|
150
|
-
export type InvokeCallback<TEvent extends EventObject = AnyEventObject, TSentEvent extends EventObject = AnyEventObject> = (sendBack: (event: TSentEvent) => void, onReceive: Receiver<TEvent>, { input, system, self }: {
|
|
151
|
-
input: any;
|
|
152
|
-
system: AnyActorSystem;
|
|
153
|
-
self: CallbackActorRef<TEvent>;
|
|
154
|
-
}) => (() => void) | Promise<any> | void;
|
|
155
161
|
export interface InvokeMeta {
|
|
156
162
|
src: string;
|
|
157
163
|
meta: MetaObject | undefined;
|
|
@@ -163,7 +169,7 @@ export interface InvokeDefinition<TContext extends MachineContext, TEvent extend
|
|
|
163
169
|
* The source of the actor logic to be invoked
|
|
164
170
|
*/
|
|
165
171
|
src: string;
|
|
166
|
-
input?: Mapper<TContext, TEvent,
|
|
172
|
+
input?: Mapper<TContext, TEvent, NonReducibleUnknown> | NonReducibleUnknown;
|
|
167
173
|
/**
|
|
168
174
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
169
175
|
*/
|
|
@@ -191,8 +197,8 @@ export type SingleOrArray<T> = T[] | T;
|
|
|
191
197
|
export type StateNodesConfig<TContext extends MachineContext, TEvent extends EventObject> = {
|
|
192
198
|
[K in string]: StateNode<TContext, TEvent>;
|
|
193
199
|
};
|
|
194
|
-
export type StatesConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject
|
|
195
|
-
[K in string]: StateNodeConfig<TContext, TEvent, TAction>;
|
|
200
|
+
export type StatesConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TActor extends ProvidedActor> = {
|
|
201
|
+
[K in string]: StateNodeConfig<TContext, TEvent, TAction, TActor>;
|
|
196
202
|
};
|
|
197
203
|
export type StatesDefinition<TContext extends MachineContext, TEvent extends EventObject> = {
|
|
198
204
|
[K in string]: StateNodeDefinition<TContext, TEvent>;
|
|
@@ -202,7 +208,43 @@ export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressio
|
|
|
202
208
|
export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject> = {
|
|
203
209
|
[K in TEvent['type'] | '*']?: K extends '*' ? TransitionConfigOrTarget<TContext, TEvent> : TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent>;
|
|
204
210
|
};
|
|
205
|
-
|
|
211
|
+
type IsLiteralString<T extends string> = string extends T ? false : true;
|
|
212
|
+
type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor> = TActor extends {
|
|
213
|
+
src: infer TSrc;
|
|
214
|
+
} ? Compute<{
|
|
215
|
+
systemId?: string;
|
|
216
|
+
/**
|
|
217
|
+
* The source of the machine to be invoked, or the machine itself.
|
|
218
|
+
*/
|
|
219
|
+
src: TSrc;
|
|
220
|
+
input?: Mapper<TContext, TEvent, InputFrom<TActor['logic']>> | InputFrom<TActor['logic']>;
|
|
221
|
+
/**
|
|
222
|
+
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
223
|
+
*/
|
|
224
|
+
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneInvokeEvent<OutputFrom<TActor['logic']>>, TEvent>>;
|
|
225
|
+
/**
|
|
226
|
+
* The transition to take upon the invoked child machine sending an error event.
|
|
227
|
+
*/
|
|
228
|
+
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorEvent<any>, TEvent>>;
|
|
229
|
+
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>, TEvent>>;
|
|
230
|
+
/**
|
|
231
|
+
* Meta data related to this invocation
|
|
232
|
+
*/
|
|
233
|
+
meta?: MetaObject;
|
|
234
|
+
} & (TActor['id'] extends string ? {
|
|
235
|
+
/**
|
|
236
|
+
* The unique identifier for the invoked machine. If not specified, this
|
|
237
|
+
* will be the machine's own `id`, or the URL (from `src`).
|
|
238
|
+
*/
|
|
239
|
+
id: TActor['id'];
|
|
240
|
+
} : {
|
|
241
|
+
/**
|
|
242
|
+
* The unique identifier for the invoked machine. If not specified, this
|
|
243
|
+
* will be the machine's own `id`, or the URL (from `src`).
|
|
244
|
+
*/
|
|
245
|
+
id?: string;
|
|
246
|
+
})> : never;
|
|
247
|
+
export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor> : {
|
|
206
248
|
/**
|
|
207
249
|
* The unique identifier for the invoked machine. If not specified, this
|
|
208
250
|
* will be the machine's own `id`, or the URL (from `src`).
|
|
@@ -212,8 +254,8 @@ export interface InvokeConfig<TContext extends MachineContext, TEvent extends Ev
|
|
|
212
254
|
/**
|
|
213
255
|
* The source of the machine to be invoked, or the machine itself.
|
|
214
256
|
*/
|
|
215
|
-
src:
|
|
216
|
-
input?: Mapper<TContext, TEvent,
|
|
257
|
+
src: AnyActorLogic | string;
|
|
258
|
+
input?: Mapper<TContext, TEvent, NonReducibleUnknown> | NonReducibleUnknown;
|
|
217
259
|
/**
|
|
218
260
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
219
261
|
*/
|
|
@@ -227,8 +269,8 @@ export interface InvokeConfig<TContext extends MachineContext, TEvent extends Ev
|
|
|
227
269
|
* Meta data related to this invocation
|
|
228
270
|
*/
|
|
229
271
|
meta?: MetaObject;
|
|
230
|
-
}
|
|
231
|
-
export interface StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject
|
|
272
|
+
};
|
|
273
|
+
export interface StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TActor extends ProvidedActor> {
|
|
232
274
|
/**
|
|
233
275
|
* The initial state transition.
|
|
234
276
|
*/
|
|
@@ -252,11 +294,11 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
252
294
|
/**
|
|
253
295
|
* The mapping of state node keys to their state node configurations (recursive).
|
|
254
296
|
*/
|
|
255
|
-
states?: StatesConfig<TContext, TEvent, TAction> | undefined;
|
|
297
|
+
states?: StatesConfig<TContext, TEvent, TAction, TActor> | undefined;
|
|
256
298
|
/**
|
|
257
299
|
* The services to invoke upon entering this state node. These services will be stopped upon exiting this state node.
|
|
258
300
|
*/
|
|
259
|
-
invoke?: SingleOrArray<
|
|
301
|
+
invoke?: SingleOrArray<TActor['src'] | InvokeConfig<TContext, TEvent, TActor>>;
|
|
260
302
|
/**
|
|
261
303
|
* The mapping of event types to their potential transition(s).
|
|
262
304
|
*/
|
|
@@ -298,7 +340,7 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
298
340
|
* The output data will be evaluated with the current `context` and placed on the `.data` property
|
|
299
341
|
* of the event.
|
|
300
342
|
*/
|
|
301
|
-
output?: Mapper<TContext, TEvent, any> |
|
|
343
|
+
output?: Mapper<TContext, TEvent, any> | NonReducibleUnknown;
|
|
302
344
|
/**
|
|
303
345
|
* The unique ID of the state node, which can be referenced as a transition target via the
|
|
304
346
|
* `#id` syntax.
|
|
@@ -344,10 +386,10 @@ export interface StateMachineDefinition<TContext extends MachineContext, TEvent
|
|
|
344
386
|
}
|
|
345
387
|
export type AnyStateNode = StateNode<any, any>;
|
|
346
388
|
export type AnyStateNodeDefinition = StateNodeDefinition<any, any>;
|
|
347
|
-
export type AnyState = State<any, any, any>;
|
|
348
|
-
export type AnyStateMachine = StateMachine<any, any, any, any, any>;
|
|
389
|
+
export type AnyState = State<any, any, any, any>;
|
|
390
|
+
export type AnyStateMachine = StateMachine<any, any, any, any, any, any>;
|
|
349
391
|
export type AnyStateConfig = StateConfig<any, AnyEventObject>;
|
|
350
|
-
export interface AtomicStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> extends StateNodeConfig<TContext, TEvent> {
|
|
392
|
+
export interface AtomicStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> extends StateNodeConfig<TContext, TEvent, TODO, TODO> {
|
|
351
393
|
initial?: undefined;
|
|
352
394
|
parallel?: false | undefined;
|
|
353
395
|
states?: undefined;
|
|
@@ -363,9 +405,9 @@ export interface FinalStateNodeConfig<TContext extends MachineContext, TEvent ex
|
|
|
363
405
|
* The data to be sent with the "done.state.<id>" event. The data can be
|
|
364
406
|
* static or dynamic (based on assigners).
|
|
365
407
|
*/
|
|
366
|
-
output?: Mapper<TContext, TEvent, any
|
|
408
|
+
output?: Mapper<TContext, TEvent, any>;
|
|
367
409
|
}
|
|
368
|
-
export type SimpleOrStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TEvent>;
|
|
410
|
+
export type SimpleOrStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TEvent, TODO, TODO>;
|
|
369
411
|
export type ActionFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> = {
|
|
370
412
|
[K in TAction['type']]?: ActionFunction<TContext, TEvent, TEvent, TAction extends {
|
|
371
413
|
type: K;
|
|
@@ -385,18 +427,18 @@ export interface MachineImplementationsSimplified<TContext extends MachineContex
|
|
|
385
427
|
type MachineImplementationsActions<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>> = {
|
|
386
428
|
[K in keyof TEventsCausingActions]?: ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, ParameterizedObject>;
|
|
387
429
|
};
|
|
430
|
+
type MachineImplementationsActors<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActors'>, TIndexedActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActors'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, _TInvokeSrcNameMap = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'invokeSrcNameMap'>> = {
|
|
431
|
+
[K in keyof TIndexedActors]?: Cast<Prop<TIndexedActors[K], 'logic'>, AnyActorLogic> | {
|
|
432
|
+
src: Cast<Prop<TIndexedActors[K], 'logic'>, AnyActorLogic>;
|
|
433
|
+
input: Mapper<TContext, Cast<Prop<TIndexedEvents, K extends keyof TEventsCausingActors ? TEventsCausingActors[K] : TIndexedEvents[keyof TIndexedEvents]>, EventObject>, InputFrom<Cast<Prop<TIndexedActors[K], 'logic'>, AnyActorLogic>>> | InputFrom<Cast<Prop<TIndexedActors[K], 'logic'>, AnyActorLogic>>;
|
|
434
|
+
};
|
|
435
|
+
};
|
|
388
436
|
type MachineImplementationsDelays<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingDelays'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>> = {
|
|
389
437
|
[K in keyof TEventsCausingDelays]?: DelayConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingDelays[K]>, EventObject>>;
|
|
390
438
|
};
|
|
391
439
|
type MachineImplementationsGuards<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingGuards'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>> = {
|
|
392
440
|
[K in keyof TEventsCausingGuards]?: GuardPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>> | GuardConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
|
|
393
441
|
};
|
|
394
|
-
type MachineImplementationsActors<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActors'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, _TInvokeSrcNameMap = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'invokeSrcNameMap'>> = {
|
|
395
|
-
[K in keyof TEventsCausingActors]?: AnyActorLogic | {
|
|
396
|
-
src: AnyActorLogic;
|
|
397
|
-
input: Mapper<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActors[K]>, EventObject>, any> | any;
|
|
398
|
-
};
|
|
399
|
-
};
|
|
400
442
|
type MakeKeysRequired<T extends string> = {
|
|
401
443
|
[K in T]: unknown;
|
|
402
444
|
};
|
|
@@ -415,14 +457,14 @@ type GenerateDelaysImplementationsPart<TContext extends MachineContext, TResolve
|
|
|
415
457
|
type GenerateGuardsImplementationsPart<TContext extends MachineContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = Compute<MaybeMakeMissingImplementationsRequired<'guards', Prop<TMissingImplementations, 'guards'>, TRequireMissingImplementations> & {
|
|
416
458
|
guards?: MachineImplementationsGuards<TContext, TResolvedTypesMeta>;
|
|
417
459
|
}>;
|
|
418
|
-
export type InternalMachineImplementations<TContext extends MachineContext,
|
|
419
|
-
export type MachineImplementations<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject,
|
|
420
|
-
type InitialContext<TContext extends MachineContext> = TContext | ContextFactory<TContext>;
|
|
421
|
-
export type ContextFactory<TContext extends MachineContext> = ({ spawn, input }: {
|
|
460
|
+
export type InternalMachineImplementations<TContext extends MachineContext, TEvent extends EventObject, _TAction extends ParameterizedObject, TActor extends ProvidedActor, TResolvedTypesMeta, TRequireMissingImplementations extends boolean = false, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = Compute<GenerateActionsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateActorsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations>>;
|
|
461
|
+
export type MachineImplementations<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TActor extends ProvidedActor = ProvidedActor, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineImplementations<TContext, TEvent, TAction, TActor, ResolveTypegenMeta<TTypesMeta, TEvent, TAction, TActor>>;
|
|
462
|
+
type InitialContext<TContext extends MachineContext, TInput> = TContext | ContextFactory<TContext, TInput>;
|
|
463
|
+
export type ContextFactory<TContext extends MachineContext, TInput> = ({ spawn, input }: {
|
|
422
464
|
spawn: Spawner;
|
|
423
|
-
input:
|
|
465
|
+
input: TInput;
|
|
424
466
|
}) => TContext;
|
|
425
|
-
export type MachineConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject,
|
|
467
|
+
export type MachineConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TActor extends ProvidedActor = ProvidedActor, TInput = any, TTypesMeta = TypegenDisabled> = (StateNodeConfig<NoInfer<TContext>, NoInfer<TEvent>, NoInfer<TAction>, NoInfer<TActor>> & {
|
|
426
468
|
/**
|
|
427
469
|
* The initial context (extended state)
|
|
428
470
|
*/
|
|
@@ -430,28 +472,31 @@ export type MachineConfig<TContext extends MachineContext, TEvent extends EventO
|
|
|
430
472
|
* The machine's own version.
|
|
431
473
|
*/
|
|
432
474
|
version?: string;
|
|
433
|
-
types?: MachineTypes<TContext, TEvent,
|
|
475
|
+
types?: MachineTypes<TContext, TEvent, TActor, TInput, TTypesMeta>;
|
|
434
476
|
}) & (Equals<TContext, MachineContext> extends true ? {
|
|
435
|
-
context?: InitialContext<LowInfer<TContext
|
|
477
|
+
context?: InitialContext<LowInfer<TContext>, TInput>;
|
|
436
478
|
} : {
|
|
437
|
-
context: InitialContext<LowInfer<TContext
|
|
479
|
+
context: InitialContext<LowInfer<TContext>, TInput>;
|
|
438
480
|
});
|
|
439
|
-
export
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
481
|
+
export interface ProvidedActor {
|
|
482
|
+
src: string;
|
|
483
|
+
logic: AnyActorLogic;
|
|
484
|
+
id?: string;
|
|
485
|
+
}
|
|
486
|
+
export interface MachineTypes<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TInput, TTypesMeta = TypegenDisabled> {
|
|
443
487
|
context?: TContext;
|
|
444
488
|
actions?: {
|
|
445
489
|
type: string;
|
|
446
490
|
[key: string]: any;
|
|
447
491
|
};
|
|
448
|
-
actors?:
|
|
492
|
+
actors?: TActor;
|
|
449
493
|
events?: TEvent;
|
|
450
494
|
guards?: {
|
|
451
495
|
type: string;
|
|
452
496
|
[key: string]: any;
|
|
453
497
|
};
|
|
454
498
|
typegen?: TTypesMeta;
|
|
499
|
+
input?: TInput;
|
|
455
500
|
}
|
|
456
501
|
export interface HistoryStateNode<TContext extends MachineContext> extends StateNode<TContext> {
|
|
457
502
|
history: 'shallow' | 'deep';
|
|
@@ -470,9 +515,9 @@ export declare enum ConstantPrefix {
|
|
|
470
515
|
ErrorPlatform = "error.platform",
|
|
471
516
|
ErrorCustom = "xstate.error"
|
|
472
517
|
}
|
|
473
|
-
export interface DoneInvokeEvent<
|
|
518
|
+
export interface DoneInvokeEvent<TOutput> {
|
|
474
519
|
type: `done.invoke.${string}`;
|
|
475
|
-
output:
|
|
520
|
+
output: TOutput;
|
|
476
521
|
}
|
|
477
522
|
export interface ErrorEvent<TErrorData> {
|
|
478
523
|
type: `error.${string}`;
|
|
@@ -519,15 +564,13 @@ export type PartialAssigner<TContext extends MachineContext, TExpressionEvent ex
|
|
|
519
564
|
export type PropertyAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject> = {
|
|
520
565
|
[K in keyof TContext]?: PartialAssigner<TContext, TExpressionEvent, K> | TContext[K];
|
|
521
566
|
};
|
|
522
|
-
export type Mapper<TContext extends MachineContext, TEvent extends EventObject, TParams
|
|
567
|
+
export type Mapper<TContext extends MachineContext, TEvent extends EventObject, TParams> = (args: {
|
|
523
568
|
context: TContext;
|
|
524
569
|
event: TEvent;
|
|
570
|
+
self: ActorRef<TEvent>;
|
|
525
571
|
}) => TParams;
|
|
526
572
|
export type PropertyMapper<TContext extends MachineContext, TEvent extends EventObject, TParams extends {}> = {
|
|
527
|
-
[K in keyof TParams]?:
|
|
528
|
-
context: TContext;
|
|
529
|
-
event: TEvent;
|
|
530
|
-
}) => TParams[K]) | TParams[K];
|
|
573
|
+
[K in keyof TParams]?: Mapper<TContext, TEvent, TParams[K]> | TParams[K];
|
|
531
574
|
};
|
|
532
575
|
export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent>, 'target'> {
|
|
533
576
|
target: Array<StateNode<TContext, TEvent>> | undefined;
|
|
@@ -577,7 +620,7 @@ export interface Segment<TContext extends MachineContext, TEvent extends EventOb
|
|
|
577
620
|
/**
|
|
578
621
|
* From state.
|
|
579
622
|
*/
|
|
580
|
-
state: State<TContext, TEvent>;
|
|
623
|
+
state: State<TContext, TEvent, TODO>;
|
|
581
624
|
/**
|
|
582
625
|
* Event from state.
|
|
583
626
|
*/
|
|
@@ -597,11 +640,12 @@ export interface StateConfig<TContext extends MachineContext, TEvent extends Eve
|
|
|
597
640
|
children: Record<string, ActorRef<any>>;
|
|
598
641
|
done?: boolean;
|
|
599
642
|
output?: any;
|
|
643
|
+
error?: unknown;
|
|
600
644
|
tags?: Set<string>;
|
|
601
|
-
machine?: StateMachine<TContext, TEvent, any, any, any>;
|
|
645
|
+
machine?: StateMachine<TContext, TEvent, any, any, any, any>;
|
|
602
646
|
_internalQueue?: Array<TEvent>;
|
|
603
647
|
}
|
|
604
|
-
export interface InterpreterOptions<
|
|
648
|
+
export interface InterpreterOptions<TLogic extends AnyActorLogic> {
|
|
605
649
|
/**
|
|
606
650
|
* Whether state actions should be executed immediately upon transition. Defaults to `true`.
|
|
607
651
|
*/
|
|
@@ -635,7 +679,7 @@ export interface InterpreterOptions<_TActorLogic extends AnyActorLogic> {
|
|
|
635
679
|
/**
|
|
636
680
|
* The input data to pass to the actor.
|
|
637
681
|
*/
|
|
638
|
-
input?:
|
|
682
|
+
input?: InputFrom<TLogic>;
|
|
639
683
|
state?: any;
|
|
640
684
|
/**
|
|
641
685
|
* The source definition.
|
|
@@ -676,7 +720,7 @@ export interface ActorRef<TEvent extends EventObject, TSnapshot = any> extends S
|
|
|
676
720
|
sessionId: string;
|
|
677
721
|
send: (event: TEvent) => void;
|
|
678
722
|
start?: () => void;
|
|
679
|
-
getSnapshot: () => TSnapshot
|
|
723
|
+
getSnapshot: () => TSnapshot;
|
|
680
724
|
getPersistedState?: () => any;
|
|
681
725
|
stop: () => void;
|
|
682
726
|
toJSON?: () => any;
|
|
@@ -686,12 +730,13 @@ export interface ActorRef<TEvent extends EventObject, TSnapshot = any> extends S
|
|
|
686
730
|
src?: string;
|
|
687
731
|
}
|
|
688
732
|
export type AnyActorRef = ActorRef<any, any>;
|
|
689
|
-
export type
|
|
733
|
+
export type ActorLogicFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<any, any, any, any, any> ? R : R extends Promise<infer U> ? PromiseActorLogic<U> : never : never;
|
|
734
|
+
export type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer TEvent, any, any, any, infer TResolvedTypesMeta> ? ActorRef<TEvent, State<TContext, TEvent, TODO, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta>> : R extends Promise<infer U> ? ActorRefFrom<PromiseActorLogic<U>> : R extends ActorLogic<infer TEvent, infer TSnapshot, infer _, infer __, infer ___, infer ____, infer _____> ? ActorRef<TEvent, TSnapshot> : never : never;
|
|
690
735
|
export type DevToolsAdapter = (service: AnyInterpreter) => void;
|
|
691
|
-
export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent,
|
|
692
|
-
export type MachineImplementationsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent,
|
|
693
|
-
export type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
694
|
-
export type EventOfMachine<TMachine extends AnyStateMachine> = TMachine extends StateMachine<any, infer E, any, any, any> ? E : never;
|
|
736
|
+
export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer _TAction, infer TActor, infer TInput, infer TResolvedTypesMeta> ? Interpreter<ActorLogic<TEvent, State<TContext, TEvent, TActor, TResolvedTypesMeta>, State<TContext, TEvent, TActor, TResolvedTypesMeta>, PersistedMachineState<State<TContext, TEvent, TActor, TResolvedTypesMeta>>, ActorSystem<any>, TInput>> : never;
|
|
737
|
+
export type MachineImplementationsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer TAction, infer TActor, infer _TInput, infer TResolvedTypesMeta> ? InternalMachineImplementations<TContext, TEvent, TAction, TActor, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
738
|
+
export type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
739
|
+
export type EventOfMachine<TMachine extends AnyStateMachine> = TMachine extends StateMachine<any, infer E, any, any, any, any> ? E : never;
|
|
695
740
|
export interface ActorContext<TEvent extends EventObject, TSnapshot, TSystem extends ActorSystem<any> = ActorSystem<any>> {
|
|
696
741
|
self: ActorRef<TEvent, TSnapshot>;
|
|
697
742
|
id: string;
|
|
@@ -706,10 +751,10 @@ export interface ActorLogic<TEvent extends EventObject, TSnapshot = any, TIntern
|
|
|
706
751
|
/**
|
|
707
752
|
* Serialized internal state used for persistence & restoration
|
|
708
753
|
*/
|
|
709
|
-
TPersisted = TInternalState, TSystem extends ActorSystem<any> = ActorSystem<any
|
|
754
|
+
TPersisted = TInternalState, TSystem extends ActorSystem<any> = ActorSystem<any>, TInput = any, TOutput = unknown> {
|
|
710
755
|
config?: unknown;
|
|
711
756
|
transition: (state: TInternalState, message: TEvent, ctx: ActorContext<TEvent, TSnapshot, TSystem>) => TInternalState;
|
|
712
|
-
getInitialState: (actorCtx: ActorContext<TEvent, TSnapshot,
|
|
757
|
+
getInitialState: (actorCtx: ActorContext<TEvent, TSnapshot, TSystem>, input: TInput) => TInternalState;
|
|
713
758
|
restoreState?: (persistedState: TPersisted, actorCtx: ActorContext<TEvent, TSnapshot>) => TInternalState;
|
|
714
759
|
getSnapshot?: (state: TInternalState) => TSnapshot;
|
|
715
760
|
getStatus?: (state: TInternalState) => {
|
|
@@ -721,15 +766,22 @@ TPersisted = TInternalState, TSystem extends ActorSystem<any> = ActorSystem<any>
|
|
|
721
766
|
* @returns Persisted state
|
|
722
767
|
*/
|
|
723
768
|
getPersistedState?: (state: TInternalState) => TPersisted;
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
export type
|
|
769
|
+
_out_TOutput?: TOutput;
|
|
770
|
+
}
|
|
771
|
+
export type AnyActorLogic = ActorLogic<any, // event
|
|
772
|
+
any, // snapshot
|
|
773
|
+
any, // internal state
|
|
774
|
+
any, // persisted state
|
|
775
|
+
any, // system
|
|
776
|
+
any, // input
|
|
777
|
+
any>;
|
|
778
|
+
export type SnapshotFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TSnapshot> ? TSnapshot : R extends Interpreter<infer TLogic> ? SnapshotFrom<TLogic> : R extends StateMachine<infer _, infer __, infer ___, infer ____, infer _____, infer ______> ? StateFrom<R> : R extends ActorLogic<infer _, infer TSnapshot, infer __, infer ___, infer ____> ? TSnapshot : R extends ActorContext<infer _, infer TSnapshot, infer __> ? TSnapshot : never : never;
|
|
727
779
|
export type EventFromLogic<TLogic extends ActorLogic<any, any>> = TLogic extends ActorLogic<infer TEvent, infer _, infer __, infer ___, infer ____> ? TEvent : never;
|
|
728
780
|
export type PersistedStateFrom<TLogic extends ActorLogic<any, any>> = TLogic extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer TPersisted> ? TPersisted : never;
|
|
729
781
|
export type InternalStateFrom<TLogic extends ActorLogic<any, any>> = TLogic extends ActorLogic<infer _TEvent, infer _TSnapshot, infer TInternalState, infer _TPersisted> ? TInternalState : never;
|
|
730
|
-
type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer TEvent, infer __, infer ___, infer ____> ? TEvent : R extends State<infer
|
|
782
|
+
type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer TEvent, infer __, infer ___, infer ____, infer _____> ? TEvent : R extends State<infer _TContext, infer TEvent, infer _TAction, infer _TActor> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
|
731
783
|
export type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
|
|
732
|
-
export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : R extends State<infer TContext, infer
|
|
784
|
+
export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____, infer _____> ? TContext : R extends State<infer TContext, infer _TEvent, infer _TAction, infer _TActor> ? TContext : R extends Interpreter<infer TActorLogic> ? TActorLogic extends StateMachine<infer TContext, infer _TEvent, infer _TActions, infer _TActors, infer _TInput, infer _TTypesMeta> ? TContext : never : never : never;
|
|
733
785
|
export type InferEvent<E extends EventObject> = {
|
|
734
786
|
[T in E['type']]: {
|
|
735
787
|
type: T;
|
|
@@ -751,7 +803,7 @@ export interface ActorSystem<T extends ActorSystemInfo> {
|
|
|
751
803
|
get: <K extends keyof T['actors']>(key: K) => T['actors'][K] | undefined;
|
|
752
804
|
}
|
|
753
805
|
export type AnyActorSystem = ActorSystem<any>;
|
|
754
|
-
export type PersistedMachineState<TState extends AnyState> = Pick<TState, 'value' | 'output' | 'context' | 'done' | 'historyValue'> & {
|
|
806
|
+
export type PersistedMachineState<TState extends AnyState> = Pick<TState, 'value' | 'output' | 'error' | 'context' | 'done' | 'historyValue'> & {
|
|
755
807
|
children: {
|
|
756
808
|
[K in keyof TState['children']]: {
|
|
757
809
|
state: any;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnyActorLogic, AnyState } from "./index.js";
|
|
2
2
|
import type { StateNode } from "./StateNode.js";
|
|
3
|
-
import type { ActorLogic, AnyEventObject, EventObject, EventType, InvokeConfig, MachineContext, Mapper, Observer,
|
|
3
|
+
import type { ActorLogic, AnyEventObject, EventObject, EventType, InvokeConfig, MachineContext, Mapper, Observer, ErrorEvent, SingleOrArray, StateLike, StateValue, Subscribable, TransitionConfig, TransitionConfigTarget, TODO, AnyActorRef } from "./types.js";
|
|
4
4
|
export declare function keys<T extends object>(value: T): Array<keyof T & string>;
|
|
5
5
|
export declare function matchesState(parentStateId: StateValue, childStateId: StateValue): boolean;
|
|
6
6
|
export declare function toStatePath(stateId: string | string[]): string[];
|
|
@@ -26,7 +26,7 @@ export declare function toStatePaths(stateValue: StateValue | undefined): string
|
|
|
26
26
|
export declare function flatten<T>(array: Array<T | T[]>): T[];
|
|
27
27
|
export declare function toArrayStrict<T>(value: T[] | T): T[];
|
|
28
28
|
export declare function toArray<T>(value: T[] | T | undefined): T[];
|
|
29
|
-
export declare function mapContext<TContext extends MachineContext, TEvent extends EventObject>(mapper: Mapper<TContext, TEvent, any
|
|
29
|
+
export declare function mapContext<TContext extends MachineContext, TEvent extends EventObject>(mapper: Mapper<TContext, TEvent, any>, context: TContext, event: TEvent, self: AnyActorRef): any;
|
|
30
30
|
export declare function isBuiltInEvent(eventType: EventType): boolean;
|
|
31
31
|
export declare function isPromiseLike(value: any): value is PromiseLike<any>;
|
|
32
32
|
export declare function isActorLogic(value: any): value is ActorLogic<any, any>;
|
|
@@ -38,7 +38,7 @@ export declare function isErrorEvent(event: AnyEventObject): event is ErrorEvent
|
|
|
38
38
|
export declare function toTransitionConfigArray<TContext extends MachineContext, TEvent extends EventObject>(configLike: SingleOrArray<TransitionConfig<TContext, TEvent> | TransitionConfigTarget>): Array<TransitionConfig<TContext, TEvent>>;
|
|
39
39
|
export declare function normalizeTarget<TContext extends MachineContext, TEvent extends EventObject>(target: SingleOrArray<string | StateNode<TContext, TEvent>> | undefined): Array<string | StateNode<TContext, TEvent>> | undefined;
|
|
40
40
|
export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
|
|
41
|
-
export declare function toInvokeConfig<TContext extends MachineContext, TEvent extends EventObject>(invocable: InvokeConfig<TContext, TEvent> | string |
|
|
41
|
+
export declare function toInvokeConfig<TContext extends MachineContext, TEvent extends EventObject>(invocable: InvokeConfig<TContext, TEvent, TODO> | string | AnyActorLogic, id: string): InvokeConfig<TContext, TEvent, TODO>;
|
|
42
42
|
export declare function toObserver<T>(nextHandler?: Observer<T> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
|
|
43
43
|
export declare function createInvokeId(stateNodeId: string, index: number): string;
|
|
44
44
|
export declare function resolveReferencedActor(referenced: AnyActorLogic | {
|
package/dist/xstate.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var actors_dist_xstateActors = require('./actions-
|
|
5
|
+
var actors_dist_xstateActors = require('./actions-c619a105.cjs.js');
|
|
6
6
|
require('../dev/dist/xstate-dev.cjs.js');
|
|
7
7
|
|
|
8
8
|
const EMPTY_OBJECT = {};
|
|
@@ -216,7 +216,6 @@ class StateNode {
|
|
|
216
216
|
};
|
|
217
217
|
}
|
|
218
218
|
return {
|
|
219
|
-
type: 'xstate.invoke',
|
|
220
219
|
...invokeConfig,
|
|
221
220
|
src: resolvedSrc,
|
|
222
221
|
id: resolvedId,
|
|
@@ -364,8 +363,9 @@ class StateMachine {
|
|
|
364
363
|
this.__TContext = void 0;
|
|
365
364
|
this.__TEvent = void 0;
|
|
366
365
|
this.__TAction = void 0;
|
|
367
|
-
this.
|
|
366
|
+
this.__TActor = void 0;
|
|
368
367
|
this.__TResolvedTypesMeta = void 0;
|
|
368
|
+
this.__TInput = void 0;
|
|
369
369
|
this.id = config.id || '(machine)';
|
|
370
370
|
this.implementations = {
|
|
371
371
|
actors: implementations?.actors ?? {},
|
|
@@ -453,7 +453,9 @@ class StateMachine {
|
|
|
453
453
|
transition(state, event, actorCtx) {
|
|
454
454
|
// TODO: handle error events in a better way
|
|
455
455
|
if (actors_dist_xstateActors.isErrorEvent(event) && !state.nextEvents.some(nextEvent => nextEvent === event.type)) {
|
|
456
|
-
|
|
456
|
+
return actors_dist_xstateActors.cloneState(state, {
|
|
457
|
+
error: event.data
|
|
458
|
+
});
|
|
457
459
|
}
|
|
458
460
|
const {
|
|
459
461
|
state: nextState
|
|
@@ -524,15 +526,10 @@ class StateMachine {
|
|
|
524
526
|
} = actors_dist_xstateActors.macrostep(nextState, initEvent, actorCtx);
|
|
525
527
|
return macroState;
|
|
526
528
|
}
|
|
527
|
-
start(state
|
|
529
|
+
start(state) {
|
|
528
530
|
Object.values(state.children).forEach(child => {
|
|
529
531
|
if (child.status === 0) {
|
|
530
|
-
|
|
531
|
-
child.start?.();
|
|
532
|
-
} catch (err) {
|
|
533
|
-
// TODO: unify error handling when child starts
|
|
534
|
-
actorCtx.self.send(actors_dist_xstateActors.error(child.id, err));
|
|
535
|
-
}
|
|
532
|
+
child.start?.();
|
|
536
533
|
}
|
|
537
534
|
});
|
|
538
535
|
}
|
|
@@ -559,7 +556,10 @@ class StateMachine {
|
|
|
559
556
|
return stateConfig instanceof actors_dist_xstateActors.State ? stateConfig : new actors_dist_xstateActors.State(stateConfig, this);
|
|
560
557
|
}
|
|
561
558
|
getStatus(state) {
|
|
562
|
-
return state.
|
|
559
|
+
return state.error ? {
|
|
560
|
+
status: 'error',
|
|
561
|
+
data: state.error
|
|
562
|
+
} : state.done ? {
|
|
563
563
|
status: 'done',
|
|
564
564
|
data: state.output
|
|
565
565
|
} : {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var actors_dist_xstateActors = require('./actions-
|
|
5
|
+
var actors_dist_xstateActors = require('./actions-a95d2e66.development.cjs.js');
|
|
6
6
|
require('../dev/dist/xstate-dev.development.cjs.js');
|
|
7
7
|
|
|
8
8
|
const EMPTY_OBJECT = {};
|
|
@@ -216,7 +216,6 @@ class StateNode {
|
|
|
216
216
|
};
|
|
217
217
|
}
|
|
218
218
|
return {
|
|
219
|
-
type: 'xstate.invoke',
|
|
220
219
|
...invokeConfig,
|
|
221
220
|
src: resolvedSrc,
|
|
222
221
|
id: resolvedId,
|
|
@@ -364,8 +363,9 @@ class StateMachine {
|
|
|
364
363
|
this.__TContext = void 0;
|
|
365
364
|
this.__TEvent = void 0;
|
|
366
365
|
this.__TAction = void 0;
|
|
367
|
-
this.
|
|
366
|
+
this.__TActor = void 0;
|
|
368
367
|
this.__TResolvedTypesMeta = void 0;
|
|
368
|
+
this.__TInput = void 0;
|
|
369
369
|
this.id = config.id || '(machine)';
|
|
370
370
|
this.implementations = {
|
|
371
371
|
actors: implementations?.actors ?? {},
|
|
@@ -453,7 +453,9 @@ class StateMachine {
|
|
|
453
453
|
transition(state, event, actorCtx) {
|
|
454
454
|
// TODO: handle error events in a better way
|
|
455
455
|
if (actors_dist_xstateActors.isErrorEvent(event) && !state.nextEvents.some(nextEvent => nextEvent === event.type)) {
|
|
456
|
-
|
|
456
|
+
return actors_dist_xstateActors.cloneState(state, {
|
|
457
|
+
error: event.data
|
|
458
|
+
});
|
|
457
459
|
}
|
|
458
460
|
const {
|
|
459
461
|
state: nextState
|
|
@@ -524,15 +526,10 @@ class StateMachine {
|
|
|
524
526
|
} = actors_dist_xstateActors.macrostep(nextState, initEvent, actorCtx);
|
|
525
527
|
return macroState;
|
|
526
528
|
}
|
|
527
|
-
start(state
|
|
529
|
+
start(state) {
|
|
528
530
|
Object.values(state.children).forEach(child => {
|
|
529
531
|
if (child.status === 0) {
|
|
530
|
-
|
|
531
|
-
child.start?.();
|
|
532
|
-
} catch (err) {
|
|
533
|
-
// TODO: unify error handling when child starts
|
|
534
|
-
actorCtx.self.send(actors_dist_xstateActors.error(child.id, err));
|
|
535
|
-
}
|
|
532
|
+
child.start?.();
|
|
536
533
|
}
|
|
537
534
|
});
|
|
538
535
|
}
|
|
@@ -559,7 +556,10 @@ class StateMachine {
|
|
|
559
556
|
return stateConfig instanceof actors_dist_xstateActors.State ? stateConfig : new actors_dist_xstateActors.State(stateConfig, this);
|
|
560
557
|
}
|
|
561
558
|
getStatus(state) {
|
|
562
|
-
return state.
|
|
559
|
+
return state.error ? {
|
|
560
|
+
status: 'error',
|
|
561
|
+
data: state.error
|
|
562
|
+
} : state.done ? {
|
|
563
563
|
status: 'done',
|
|
564
564
|
data: state.output
|
|
565
565
|
} : {
|