xstate 5.0.0-beta.27 → 5.0.0-beta.29
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 +9 -7
- package/actions/dist/xstate-actions.cjs.js +11 -17
- package/actions/dist/xstate-actions.cjs.mjs +0 -8
- package/actions/dist/xstate-actions.development.cjs.js +11 -17
- package/actions/dist/xstate-actions.development.cjs.mjs +0 -8
- package/actions/dist/xstate-actions.development.esm.js +3 -1
- package/actions/dist/xstate-actions.esm.js +3 -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 +395 -28
- package/actors/dist/xstate-actors.cjs.mjs +1 -3
- package/actors/dist/xstate-actors.development.cjs.js +395 -28
- package/actors/dist/xstate-actors.development.cjs.mjs +1 -3
- package/actors/dist/xstate-actors.development.esm.js +389 -21
- package/actors/dist/xstate-actors.esm.js +389 -21
- 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/StateNode.d.ts +3 -3
- package/dist/declarations/src/actions/assign.d.ts +9 -4
- package/dist/declarations/src/actions/cancel.d.ts +4 -4
- package/dist/declarations/src/actions/choose.d.ts +5 -4
- package/dist/declarations/src/actions/log.d.ts +4 -4
- package/dist/declarations/src/actions/pure.d.ts +6 -5
- package/dist/declarations/src/actions/raise.d.ts +2 -2
- package/dist/declarations/src/actions/send.d.ts +7 -7
- package/dist/declarations/src/actions/stop.d.ts +4 -4
- package/dist/declarations/src/actions.d.ts +8 -44
- package/dist/declarations/src/actors/callback.d.ts +2 -2
- package/dist/declarations/src/actors/index.d.ts +3 -5
- package/dist/declarations/src/constants.d.ts +1 -0
- package/dist/declarations/src/index.d.ts +9 -16
- package/dist/declarations/src/spawn.d.ts +25 -0
- package/dist/declarations/src/stateUtils.d.ts +1 -1
- package/dist/declarations/src/typegenTypes.d.ts +4 -4
- package/dist/declarations/src/types.d.ts +92 -122
- package/dist/declarations/src/utils.d.ts +2 -2
- package/dist/interpreter-498891b2.esm.js +741 -0
- package/dist/interpreter-6e7909c8.development.esm.js +749 -0
- package/dist/interpreter-c357bc50.cjs.js +773 -0
- package/dist/interpreter-e2c6a579.development.cjs.js +781 -0
- package/dist/{actions-9754d2ca.development.esm.js → raise-03e57569.cjs.js} +130 -1307
- package/dist/{actions-d1dba4ac.cjs.js → raise-59f2c242.esm.js} +65 -1267
- package/dist/{actions-020463e9.esm.js → raise-e778a828.development.esm.js} +109 -1203
- package/dist/{actions-ca622922.development.cjs.js → raise-f751dfac.development.cjs.js} +101 -1306
- package/dist/send-42c83fb2.development.esm.js +364 -0
- package/dist/send-51717e53.cjs.js +349 -0
- package/dist/send-f53778f6.development.cjs.js +374 -0
- package/dist/send-fff224db.esm.js +339 -0
- package/dist/xstate.cjs.js +114 -112
- package/dist/xstate.cjs.mjs +2 -2
- package/dist/xstate.development.cjs.js +114 -112
- package/dist/xstate.development.cjs.mjs +2 -2
- package/dist/xstate.development.esm.js +78 -74
- package/dist/xstate.esm.js +78 -74
- 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 -1
- package/guards/dist/xstate-guards.development.cjs.js +2 -1
- package/guards/dist/xstate-guards.development.esm.js +2 -1
- package/guards/dist/xstate-guards.esm.js +2 -1
- package/guards/dist/xstate-guards.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/declarations/src/constantPrefixes.d.ts +0 -6
- package/dist/promise-2ad94e3b.development.esm.js +0 -406
- package/dist/promise-3b7e3357.development.cjs.js +0 -412
- package/dist/promise-5b07c38e.esm.js +0 -406
- package/dist/promise-7a8c1768.cjs.js +0 -412
|
@@ -5,6 +5,8 @@ import type { StateMachine } from "./StateMachine.js";
|
|
|
5
5
|
import { TypegenDisabled, ResolveTypegenMeta, TypegenConstraint, MarkAllImplementationsAsProvided, AreAllImplementationsAssumedToBeProvided } from "./typegenTypes.js";
|
|
6
6
|
import { PromiseActorLogic } from "./actors/promise.js";
|
|
7
7
|
import { Guard, GuardPredicate, UnknownGuard } from "./guards.js";
|
|
8
|
+
import { Spawner } from "./spawn.js";
|
|
9
|
+
import { AssignArgs } from "./actions/assign.js";
|
|
8
10
|
/**
|
|
9
11
|
* `T | unknown` reduces to `unknown` and that can be problematic when it comes to contextual typing.
|
|
10
12
|
* It especially is a problem when the union has a function member, like here:
|
|
@@ -56,37 +58,29 @@ export interface ParameterizedObject {
|
|
|
56
58
|
type: string;
|
|
57
59
|
params?: Record<string, unknown>;
|
|
58
60
|
}
|
|
59
|
-
export interface UnifiedArg<TContext extends MachineContext, TExpressionEvent extends EventObject> {
|
|
61
|
+
export interface UnifiedArg<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject> {
|
|
60
62
|
context: TContext;
|
|
61
63
|
event: TExpressionEvent;
|
|
62
|
-
self: ActorRef<
|
|
64
|
+
self: ActorRef<TEvent, TContext>;
|
|
63
65
|
system: ActorSystem<any>;
|
|
64
66
|
}
|
|
65
67
|
export type MachineContext = Record<string, any>;
|
|
66
|
-
export interface ActionArgs<TContext extends MachineContext,
|
|
67
|
-
action:
|
|
68
|
+
export interface ActionArgs<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject> extends UnifiedArg<TContext, TExpressionEvent, TEvent> {
|
|
69
|
+
action: TExpressionAction;
|
|
68
70
|
}
|
|
69
71
|
export type InputFrom<T extends AnyActorLogic> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TTag, infer TInput, infer _TOutput, infer _TResolvedTypesMeta> ? TInput : T extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer _TPersisted, infer _TSystem, infer TInput> ? TInput : never;
|
|
70
72
|
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;
|
|
71
|
-
export type
|
|
72
|
-
|
|
73
|
-
id: string;
|
|
74
|
-
systemId?: string;
|
|
75
|
-
input: T extends AnyActorLogic ? InputFrom<T> : any;
|
|
76
|
-
}>) => ActorRefFrom<T>;
|
|
77
|
-
export interface AssignArgs<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> extends ActionArgs<TContext, TExpressionEvent, TExpressionAction> {
|
|
78
|
-
spawn: Spawner;
|
|
79
|
-
}
|
|
80
|
-
export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
81
|
-
(args: ActionArgs<TContext, TExpressionEvent, TExpressionAction>): void;
|
|
73
|
+
export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
74
|
+
(args: ActionArgs<TContext, TExpressionEvent, TExpressionAction, TEvent>): void;
|
|
82
75
|
_out_TEvent?: TEvent;
|
|
76
|
+
_out_TActor?: TActor;
|
|
83
77
|
_out_TAction?: TAction;
|
|
84
78
|
_out_TGuard?: TGuard;
|
|
85
79
|
_out_TDelay?: TDelay;
|
|
86
80
|
};
|
|
87
|
-
export interface ChooseBranch<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> {
|
|
81
|
+
export interface ChooseBranch<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> {
|
|
88
82
|
guard?: Guard<TContext, TExpressionEvent, undefined, TGuard>;
|
|
89
|
-
actions: Actions<TContext, TExpressionEvent, TEvent, undefined, TAction, TGuard, TDelay>;
|
|
83
|
+
actions: Actions<TContext, TExpressionEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay>;
|
|
90
84
|
}
|
|
91
85
|
export type NoRequiredParams<T extends ParameterizedObject> = T extends any ? {
|
|
92
86
|
type: T['type'];
|
|
@@ -99,9 +93,9 @@ export type WithDynamicParams<TContext extends MachineContext, TExpressionEvent
|
|
|
99
93
|
event: TExpressionEvent;
|
|
100
94
|
}) => T['params']);
|
|
101
95
|
}, undefined extends T['params'] ? false : true> : never;
|
|
102
|
-
export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = NoRequiredParams<TAction> | WithDynamicParams<TContext, TExpressionEvent, TAction> | ActionFunction<TContext, TExpressionEvent, TEvent, TExpressionAction, TAction, TGuard, TDelay>;
|
|
103
|
-
export type UnknownAction = Action<MachineContext, EventObject, EventObject, ParameterizedObject | undefined, ParameterizedObject, ParameterizedObject, string>;
|
|
104
|
-
export type Actions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<Action<TContext, TExpressionEvent, TEvent, TExpressionAction, TAction, TGuard, TDelay>>;
|
|
96
|
+
export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = NoRequiredParams<TAction> | WithDynamicParams<TContext, TExpressionEvent, TAction> | ActionFunction<TContext, TExpressionEvent, TEvent, TExpressionAction, TActor, TAction, TGuard, TDelay>;
|
|
97
|
+
export type UnknownAction = Action<MachineContext, EventObject, EventObject, ParameterizedObject | undefined, ProvidedActor, ParameterizedObject, ParameterizedObject, string>;
|
|
98
|
+
export type Actions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<Action<TContext, TExpressionEvent, TEvent, TExpressionAction, TActor, TAction, TGuard, TDelay>>;
|
|
105
99
|
export type StateKey = string | AnyState;
|
|
106
100
|
export interface StateValueMap {
|
|
107
101
|
[key: string]: StateValue;
|
|
@@ -114,19 +108,19 @@ export interface StateValueMap {
|
|
|
114
108
|
*/
|
|
115
109
|
export type StateValue = string | StateValueMap;
|
|
116
110
|
export type TransitionTarget = SingleOrArray<string>;
|
|
117
|
-
export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
|
|
111
|
+
export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
|
|
118
112
|
guard?: Guard<TContext, TExpressionEvent, undefined, TGuard>;
|
|
119
|
-
actions?: Actions<TContext, TExpressionEvent, TEvent, undefined, TAction, TGuard, TDelay>;
|
|
113
|
+
actions?: Actions<TContext, TExpressionEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay>;
|
|
120
114
|
reenter?: boolean;
|
|
121
115
|
target?: TransitionTarget | undefined;
|
|
122
116
|
meta?: Record<string, any>;
|
|
123
117
|
description?: string;
|
|
124
118
|
}
|
|
125
|
-
export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> extends TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard, TDelay> {
|
|
119
|
+
export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> extends TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay> {
|
|
126
120
|
target: TransitionTarget;
|
|
127
121
|
}
|
|
128
|
-
export type AnyTransitionConfig = TransitionConfig<any, any, any, any, any, any>;
|
|
129
|
-
export interface InvokeDefinition<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
|
|
122
|
+
export type AnyTransitionConfig = TransitionConfig<any, any, any, any, any, any, any>;
|
|
123
|
+
export interface InvokeDefinition<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
|
|
130
124
|
id: string;
|
|
131
125
|
systemId: string | undefined;
|
|
132
126
|
/**
|
|
@@ -137,19 +131,19 @@ export interface InvokeDefinition<TContext extends MachineContext, TEvent extend
|
|
|
137
131
|
/**
|
|
138
132
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
139
133
|
*/
|
|
140
|
-
onDone?: string | SingleOrArray<TransitionConfig<TContext,
|
|
134
|
+
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
141
135
|
/**
|
|
142
136
|
* The transition to take upon the invoked child machine sending an error event.
|
|
143
137
|
*/
|
|
144
|
-
onError?: string | SingleOrArray<TransitionConfig<TContext,
|
|
145
|
-
onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent<
|
|
146
|
-
toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TAction, TGuard, TDelay>, 'onDone' | 'onError' | 'toJSON'>;
|
|
138
|
+
onError?: string | SingleOrArray<TransitionConfig<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
139
|
+
onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
140
|
+
toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TActor, TAction, TGuard, TDelay>, 'onDone' | 'onError' | 'toJSON'>;
|
|
147
141
|
}
|
|
148
142
|
type Delay<TDelay extends string> = TDelay | number;
|
|
149
|
-
export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
150
|
-
[K in Delay<TDelay>]?: string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard, TDelay>>;
|
|
151
|
-
} | Array<TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard, TDelay> & {
|
|
152
|
-
delay: Delay<TDelay> | ((args: UnifiedArg<TContext, TEvent>) => Delay<TDelay>);
|
|
143
|
+
export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
144
|
+
[K in Delay<TDelay>]?: string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
145
|
+
} | Array<TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay> & {
|
|
146
|
+
delay: Delay<TDelay> | ((args: UnifiedArg<TContext, TEvent, TEvent>) => Delay<TDelay>);
|
|
153
147
|
}>;
|
|
154
148
|
export type StateTypes = 'atomic' | 'compound' | 'parallel' | 'final' | 'history' | string;
|
|
155
149
|
export type SingleOrArray<T> = readonly T[] | T;
|
|
@@ -163,15 +157,15 @@ export type StatesDefinition<TContext extends MachineContext, TEvent extends Eve
|
|
|
163
157
|
[K in string]: StateNodeDefinition<TContext, TEvent>;
|
|
164
158
|
};
|
|
165
159
|
export type TransitionConfigTarget = string | undefined;
|
|
166
|
-
export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TAction, TGuard, TDelay>>;
|
|
167
|
-
export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
168
|
-
[K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TAction, TGuard, TDelay>;
|
|
160
|
+
export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
161
|
+
export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
162
|
+
[K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TActor, TAction, TGuard, TDelay>;
|
|
169
163
|
};
|
|
170
164
|
type PartialEventDescriptor<TEventType extends string> = TEventType extends `${infer TLeading}.${infer TTail}` ? `${TLeading}.*` | `${TLeading}.${PartialEventDescriptor<TTail>}` : never;
|
|
171
165
|
export type EventDescriptor<TEvent extends EventObject> = TEvent['type'] | PartialEventDescriptor<TEvent['type']> | '*';
|
|
172
166
|
type NormalizeDescriptor<TDescriptor extends string> = TDescriptor extends '*' ? string : TDescriptor extends `${infer TLeading}.*` ? `${TLeading}.${string}` : TDescriptor;
|
|
173
|
-
type IsLiteralString<T extends string> = string extends T ? false : true;
|
|
174
|
-
type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> =
|
|
167
|
+
export type IsLiteralString<T extends string> = string extends T ? false : true;
|
|
168
|
+
type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TSpecificActor extends ProvidedActor> = TSpecificActor extends {
|
|
175
169
|
src: infer TSrc;
|
|
176
170
|
} ? Compute<{
|
|
177
171
|
systemId?: string;
|
|
@@ -179,22 +173,22 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
|
|
|
179
173
|
* The source of the machine to be invoked, or the machine itself.
|
|
180
174
|
*/
|
|
181
175
|
src: TSrc;
|
|
182
|
-
input?: Mapper<TContext, TEvent, InputFrom<
|
|
176
|
+
input?: Mapper<TContext, TEvent, InputFrom<TSpecificActor['logic']>> | InputFrom<TSpecificActor['logic']>;
|
|
183
177
|
/**
|
|
184
178
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
185
179
|
*/
|
|
186
|
-
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext,
|
|
180
|
+
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<OutputFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
187
181
|
/**
|
|
188
182
|
* The transition to take upon the invoked child machine sending an error event.
|
|
189
183
|
*/
|
|
190
|
-
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext,
|
|
191
|
-
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<
|
|
192
|
-
} & (
|
|
184
|
+
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
185
|
+
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<SnapshotFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
186
|
+
} & (TSpecificActor['id'] extends string ? {
|
|
193
187
|
/**
|
|
194
188
|
* The unique identifier for the invoked machine. If not specified, this
|
|
195
189
|
* will be the machine's own `id`, or the URL (from `src`).
|
|
196
190
|
*/
|
|
197
|
-
id:
|
|
191
|
+
id: TSpecificActor['id'];
|
|
198
192
|
} : {
|
|
199
193
|
/**
|
|
200
194
|
* The unique identifier for the invoked machine. If not specified, this
|
|
@@ -202,7 +196,7 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
|
|
|
202
196
|
*/
|
|
203
197
|
id?: string;
|
|
204
198
|
})> : never;
|
|
205
|
-
export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay> : {
|
|
199
|
+
export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay, TActor> : {
|
|
206
200
|
/**
|
|
207
201
|
* The unique identifier for the invoked machine. If not specified, this
|
|
208
202
|
* will be the machine's own `id`, or the URL (from `src`).
|
|
@@ -217,19 +211,21 @@ export type InvokeConfig<TContext extends MachineContext, TEvent extends EventOb
|
|
|
217
211
|
/**
|
|
218
212
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
219
213
|
*/
|
|
220
|
-
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext,
|
|
214
|
+
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<any>, // TODO: consider replacing with `unknown`
|
|
215
|
+
TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
221
216
|
/**
|
|
222
217
|
* The transition to take upon the invoked child machine sending an error event.
|
|
223
218
|
*/
|
|
224
|
-
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext,
|
|
225
|
-
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>,
|
|
219
|
+
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
220
|
+
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>, // TODO: consider replacing with `unknown`
|
|
221
|
+
TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
226
222
|
};
|
|
227
223
|
export type AnyInvokeConfig = InvokeConfig<any, any, any, any, any, any>;
|
|
228
224
|
export interface StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput> {
|
|
229
225
|
/**
|
|
230
226
|
* The initial state transition.
|
|
231
227
|
*/
|
|
232
|
-
initial?: InitialTransitionConfig<TContext, TEvent, TAction, TGuard, TDelay> | SingleOrArray<string> | undefined;
|
|
228
|
+
initial?: InitialTransitionConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay> | SingleOrArray<string> | undefined;
|
|
233
229
|
/**
|
|
234
230
|
* The type of this state node:
|
|
235
231
|
*
|
|
@@ -257,30 +253,30 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
257
253
|
/**
|
|
258
254
|
* The mapping of event types to their potential transition(s).
|
|
259
255
|
*/
|
|
260
|
-
on?: TransitionsConfig<TContext, TEvent, TAction, TGuard, TDelay>;
|
|
256
|
+
on?: TransitionsConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay>;
|
|
261
257
|
/**
|
|
262
258
|
* The action(s) to be executed upon entering the state node.
|
|
263
259
|
*/
|
|
264
|
-
entry?: Actions<TContext, TEvent, TEvent, undefined, TAction, TGuard, TDelay>;
|
|
260
|
+
entry?: Actions<TContext, TEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay>;
|
|
265
261
|
/**
|
|
266
262
|
* The action(s) to be executed upon exiting the state node.
|
|
267
263
|
*/
|
|
268
|
-
exit?: Actions<TContext, TEvent, TEvent, undefined, TAction, TGuard, TDelay>;
|
|
264
|
+
exit?: Actions<TContext, TEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay>;
|
|
269
265
|
/**
|
|
270
266
|
* The potential transition(s) to be taken upon reaching a final child state node.
|
|
271
267
|
*
|
|
272
268
|
* This is equivalent to defining a `[done(id)]` transition on this state node's `on` property.
|
|
273
269
|
*/
|
|
274
|
-
onDone?: string | SingleOrArray<TransitionConfig<TContext,
|
|
270
|
+
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneStateEvent, TEvent, TActor, TAction, TGuard, TDelay>> | undefined;
|
|
275
271
|
/**
|
|
276
272
|
* The mapping (or array) of delays (in milliseconds) to their potential transition(s).
|
|
277
273
|
* The delayed transitions are taken after the specified delay in an interpreter.
|
|
278
274
|
*/
|
|
279
|
-
after?: DelayedTransitions<TContext, TEvent, TAction, TGuard, TDelay>;
|
|
275
|
+
after?: DelayedTransitions<TContext, TEvent, TActor, TAction, TGuard, TDelay>;
|
|
280
276
|
/**
|
|
281
277
|
* An eventless transition that is always taken when this state node is active.
|
|
282
278
|
*/
|
|
283
|
-
always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TAction, TGuard, TDelay>;
|
|
279
|
+
always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay>;
|
|
284
280
|
/**
|
|
285
281
|
* @private
|
|
286
282
|
*/
|
|
@@ -290,7 +286,7 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
290
286
|
*/
|
|
291
287
|
meta?: any;
|
|
292
288
|
/**
|
|
293
|
-
* The output data sent with the "done.state._id_" event if this is a final state node.
|
|
289
|
+
* The output data sent with the "xstate.done.state._id_" event if this is a final state node.
|
|
294
290
|
*
|
|
295
291
|
* The output data will be evaluated with the current `context` and placed on the `.data` property
|
|
296
292
|
* of the event.
|
|
@@ -334,7 +330,7 @@ export interface StateNodeDefinition<TContext extends MachineContext, TEvent ext
|
|
|
334
330
|
meta: any;
|
|
335
331
|
order: number;
|
|
336
332
|
output?: FinalStateNodeConfig<TContext, TEvent>['output'];
|
|
337
|
-
invoke: Array<InvokeDefinition<TContext, TEvent, TODO, TODO, TODO>>;
|
|
333
|
+
invoke: Array<InvokeDefinition<TContext, TEvent, TODO, TODO, TODO, TODO>>;
|
|
338
334
|
description?: string;
|
|
339
335
|
tags: string[];
|
|
340
336
|
}
|
|
@@ -360,27 +356,27 @@ export interface HistoryStateNodeConfig<TContext extends MachineContext, TEvent
|
|
|
360
356
|
export interface FinalStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> extends AtomicStateNodeConfig<TContext, TEvent> {
|
|
361
357
|
type: 'final';
|
|
362
358
|
/**
|
|
363
|
-
* The data to be sent with the "done.state.<id>" event. The data can be
|
|
359
|
+
* The data to be sent with the "xstate.done.state.<id>" event. The data can be
|
|
364
360
|
* static or dynamic (based on assigners).
|
|
365
361
|
*/
|
|
366
362
|
output?: Mapper<TContext, TEvent, any>;
|
|
367
363
|
}
|
|
368
364
|
export type SimpleOrStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, TODO>;
|
|
369
|
-
export type ActionFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> = {
|
|
365
|
+
export type ActionFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> = {
|
|
370
366
|
[K in TAction['type']]?: ActionFunction<TContext, TEvent, TEvent, TAction extends {
|
|
371
367
|
type: K;
|
|
372
|
-
} ? TAction : never, TAction, TGuard, TDelay>;
|
|
368
|
+
} ? TAction : never, TActor, TAction, TGuard, TDelay>;
|
|
373
369
|
};
|
|
374
370
|
type GuardMap<TContext extends MachineContext, TEvent extends EventObject, TGuard extends ParameterizedObject> = {
|
|
375
371
|
[K in TGuard['type']]?: GuardPredicate<TContext, TEvent, TGuard extends {
|
|
376
372
|
type: K;
|
|
377
373
|
} ? TGuard : never, TGuard>;
|
|
378
374
|
};
|
|
379
|
-
export type DelayFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject> = Record<string, DelayConfig<TContext, TEvent, TAction>>;
|
|
380
|
-
export type DelayConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> = number | DelayExpr<TContext, TExpressionEvent, TExpressionAction>;
|
|
381
|
-
export interface MachineImplementationsSimplified<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject> {
|
|
375
|
+
export type DelayFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject> = Record<string, DelayConfig<TContext, TEvent, TAction, TEvent>>;
|
|
376
|
+
export type DelayConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject> = number | DelayExpr<TContext, TExpressionEvent, TExpressionAction, TEvent>;
|
|
377
|
+
export interface MachineImplementationsSimplified<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject> {
|
|
382
378
|
guards: GuardMap<TContext, TEvent, TGuard>;
|
|
383
|
-
actions: ActionFunctionMap<TContext, TEvent, TAction>;
|
|
379
|
+
actions: ActionFunctionMap<TContext, TEvent, TActor, TAction>;
|
|
384
380
|
actors: Record<string, AnyActorLogic | {
|
|
385
381
|
src: AnyActorLogic;
|
|
386
382
|
input: Mapper<TContext, TEvent, any> | any;
|
|
@@ -388,8 +384,8 @@ export interface MachineImplementationsSimplified<TContext extends MachineContex
|
|
|
388
384
|
delays: DelayFunctionMap<TContext, TEvent, TAction>;
|
|
389
385
|
}
|
|
390
386
|
type MaybeNarrowedEvent<TIndexedEvents, TCausingLookup, K> = Cast<Prop<TIndexedEvents, K extends keyof TCausingLookup ? TCausingLookup[K] : TIndexedEvents[keyof TIndexedEvents]>, EventObject>;
|
|
391
|
-
type MachineImplementationsActions<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>, TIndexedGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedGuards'>, TIndexedDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedDelays'>> = {
|
|
392
|
-
[K in keyof TIndexedActions]?: ActionFunction<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingActions, K>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, Cast<TIndexedActions[K], ParameterizedObject>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject>, Cast<Prop<TIndexedGuards, keyof TIndexedGuards>, ParameterizedObject>, Cast<Prop<TIndexedDelays, keyof TIndexedDelays>, ParameterizedObject>['type']>;
|
|
387
|
+
type MachineImplementationsActions<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActors'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>, TIndexedGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedGuards'>, TIndexedDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedDelays'>> = {
|
|
388
|
+
[K in keyof TIndexedActions]?: ActionFunction<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingActions, K>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, Cast<TIndexedActions[K], ParameterizedObject>, Cast<Prop<TIndexedActors, keyof TIndexedActors>, ProvidedActor>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject>, Cast<Prop<TIndexedGuards, keyof TIndexedGuards>, ParameterizedObject>, Cast<Prop<TIndexedDelays, keyof TIndexedDelays>, ParameterizedObject>['type']>;
|
|
393
389
|
};
|
|
394
390
|
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'>> = {
|
|
395
391
|
[K in keyof TIndexedActors]?: Cast<Prop<TIndexedActors[K], 'logic'>, AnyActorLogic> | {
|
|
@@ -398,7 +394,7 @@ type MachineImplementationsActors<TContext extends MachineContext, TResolvedType
|
|
|
398
394
|
};
|
|
399
395
|
};
|
|
400
396
|
type MachineImplementationsDelays<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingDelays'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>, TIndexedDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedDelays'>> = {
|
|
401
|
-
[K in keyof TIndexedDelays]?: DelayConfig<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingDelays, K>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject> | undefined
|
|
397
|
+
[K in keyof TIndexedDelays]?: DelayConfig<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingDelays, K>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject> | undefined, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>>;
|
|
402
398
|
};
|
|
403
399
|
type MachineImplementationsGuards<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingGuards'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedGuards'>> = {
|
|
404
400
|
[K in keyof TIndexedGuards]?: Guard<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingGuards, K>, Cast<TIndexedGuards[K], ParameterizedObject>, Cast<Prop<TIndexedGuards, keyof TIndexedGuards>, ParameterizedObject>>;
|
|
@@ -423,9 +419,9 @@ type GenerateGuardsImplementationsPart<TContext extends MachineContext, TResolve
|
|
|
423
419
|
}>;
|
|
424
420
|
export type InternalMachineImplementations<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TDelay extends string, 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>>;
|
|
425
421
|
export type MachineImplementations<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string, TTag extends string = string, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineImplementations<TContext, TEvent, TActor, TAction, TDelay, ResolveTypegenMeta<TTypesMeta, TEvent, TActor, TAction, TGuard, TDelay, TTag>>;
|
|
426
|
-
type InitialContext<TContext extends MachineContext, TInput> = TContext | ContextFactory<TContext, TInput>;
|
|
427
|
-
export type ContextFactory<TContext extends MachineContext, TInput> = ({ spawn, input }: {
|
|
428
|
-
spawn: Spawner
|
|
422
|
+
type InitialContext<TContext extends MachineContext, TActor extends ProvidedActor, TInput> = TContext | ContextFactory<TContext, TActor, TInput>;
|
|
423
|
+
export type ContextFactory<TContext extends MachineContext, TActor extends ProvidedActor, TInput> = ({ spawn, input }: {
|
|
424
|
+
spawn: Spawner<TActor>;
|
|
429
425
|
input: TInput;
|
|
430
426
|
}) => TContext;
|
|
431
427
|
type RootStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput> = Omit<StateNodeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TOutput>, 'states'> & {
|
|
@@ -441,9 +437,9 @@ export type MachineConfig<TContext extends MachineContext, TEvent extends EventO
|
|
|
441
437
|
version?: string;
|
|
442
438
|
types?: MachineTypes<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TInput, TOutput, TTypesMeta>;
|
|
443
439
|
}) & (Equals<TContext, MachineContext> extends true ? {
|
|
444
|
-
context?: InitialContext<LowInfer<TContext>, TInput>;
|
|
440
|
+
context?: InitialContext<LowInfer<TContext>, TActor, TInput>;
|
|
445
441
|
} : {
|
|
446
|
-
context: InitialContext<LowInfer<TContext>, TInput>;
|
|
442
|
+
context: InitialContext<LowInfer<TContext>, TActor, TInput>;
|
|
447
443
|
});
|
|
448
444
|
export interface ProvidedActor {
|
|
449
445
|
src: string;
|
|
@@ -470,63 +466,45 @@ export type HistoryValue<TContext extends MachineContext, TEvent extends EventOb
|
|
|
470
466
|
export type AnyHistoryValue = HistoryValue<any, any>;
|
|
471
467
|
export type StateFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends AnyStateMachine ? ReturnType<T['transition']> : T extends (...args: any[]) => AnyStateMachine ? ReturnType<ReturnType<T>['transition']> : never;
|
|
472
468
|
export type Transitions<TContext extends MachineContext, TEvent extends EventObject> = Array<TransitionDefinition<TContext, TEvent>>;
|
|
473
|
-
export
|
|
474
|
-
|
|
475
|
-
DoneState = "done.state",
|
|
476
|
-
DoneInvoke = "done.invoke",
|
|
477
|
-
ErrorExecution = "error.execution",
|
|
478
|
-
ErrorCommunication = "error.communication",
|
|
479
|
-
ErrorPlatform = "error.platform",
|
|
480
|
-
ErrorCustom = "xstate.error"
|
|
481
|
-
}
|
|
482
|
-
export interface DoneInvokeEvent<TOutput> {
|
|
483
|
-
type: `done.invoke.${string}`;
|
|
469
|
+
export interface DoneActorEvent<TOutput = unknown> {
|
|
470
|
+
type: `xstate.done.actor.${string}`;
|
|
484
471
|
output: TOutput;
|
|
485
472
|
}
|
|
486
|
-
export interface
|
|
487
|
-
type: `error.${string}`;
|
|
473
|
+
export interface ErrorActorEvent<TErrorData = unknown> extends EventObject {
|
|
474
|
+
type: `xstate.error.actor.${string}`;
|
|
488
475
|
data: TErrorData;
|
|
489
476
|
}
|
|
490
|
-
export interface SnapshotEvent<TData> {
|
|
477
|
+
export interface SnapshotEvent<TData = unknown> extends EventObject {
|
|
491
478
|
type: `xstate.snapshot.${string}`;
|
|
492
479
|
data: TData;
|
|
493
480
|
}
|
|
494
|
-
export interface
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
data: any;
|
|
498
|
-
}
|
|
499
|
-
export interface ErrorPlatformEvent extends EventObject {
|
|
500
|
-
data: any;
|
|
501
|
-
}
|
|
502
|
-
export interface DoneEventObject extends EventObject {
|
|
503
|
-
output?: any;
|
|
504
|
-
toString(): string;
|
|
481
|
+
export interface DoneStateEvent<TOutput = unknown> extends EventObject {
|
|
482
|
+
type: `xstate.done.state.${string}`;
|
|
483
|
+
output: TOutput;
|
|
505
484
|
}
|
|
506
|
-
export type
|
|
507
|
-
export type
|
|
508
|
-
export type
|
|
509
|
-
export type SendExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction>) => TSentEvent;
|
|
485
|
+
export type DelayExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction, TEvent>) => number;
|
|
486
|
+
export type LogExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction, TEvent>) => unknown;
|
|
487
|
+
export type SendExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject, TEvent extends EventObject> = (args: ActionArgs<TContext, TExpressionEvent, TExpressionAction, TEvent>) => TSentEvent;
|
|
510
488
|
export declare enum SpecialTargets {
|
|
511
489
|
Parent = "#_parent",
|
|
512
490
|
Internal = "#_internal"
|
|
513
491
|
}
|
|
514
|
-
export interface SendToActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TDelay> {
|
|
492
|
+
export interface SendToActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TEvent, TDelay> {
|
|
515
493
|
}
|
|
516
|
-
export interface RaiseActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TDelay extends string> {
|
|
494
|
+
export interface RaiseActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TDelay extends string> {
|
|
517
495
|
id?: string;
|
|
518
|
-
delay?: Delay<TDelay> | DelayExpr<TContext, TExpressionEvent, TExpressionAction>;
|
|
496
|
+
delay?: Delay<TDelay> | DelayExpr<TContext, TExpressionEvent, TExpressionAction, TEvent>;
|
|
519
497
|
}
|
|
520
|
-
export interface RaiseActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TDelay> {
|
|
521
|
-
event: TEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TEvent>;
|
|
498
|
+
export interface RaiseActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TEvent, TDelay> {
|
|
499
|
+
event: TEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TEvent, TEvent>;
|
|
522
500
|
}
|
|
523
|
-
export interface SendToActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject, TDelay extends string> extends SendToActionOptions<TContext, TExpressionEvent, TExpressionAction, TDelay> {
|
|
524
|
-
event: TSentEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TSentEvent>;
|
|
501
|
+
export interface SendToActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject, TEvent extends EventObject, TDelay extends string> extends SendToActionOptions<TContext, TExpressionEvent, TExpressionAction, TEvent, TDelay> {
|
|
502
|
+
event: TSentEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TSentEvent, TEvent>;
|
|
525
503
|
}
|
|
526
|
-
export type Assigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> = (args: AssignArgs<TContext, TExpressionEvent, TExpressionAction>) => Partial<TContext>;
|
|
527
|
-
export type PartialAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TKey extends keyof TContext> = (args: AssignArgs<TContext, TExpressionEvent, TExpressionAction>) => TContext[TKey];
|
|
528
|
-
export type PropertyAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> = {
|
|
529
|
-
[K in keyof TContext]?: PartialAssigner<TContext, TExpressionEvent, TExpressionAction, K> | TContext[K];
|
|
504
|
+
export type Assigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TActor extends ProvidedActor> = (args: AssignArgs<TContext, TExpressionEvent, TExpressionAction, TEvent, TActor>) => Partial<TContext>;
|
|
505
|
+
export type PartialAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TActor extends ProvidedActor, TKey extends keyof TContext> = (args: AssignArgs<TContext, TExpressionEvent, TExpressionAction, TEvent, TActor>) => TContext[TKey];
|
|
506
|
+
export type PropertyAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TActor extends ProvidedActor> = {
|
|
507
|
+
[K in keyof TContext]?: PartialAssigner<TContext, TExpressionEvent, TExpressionAction, TEvent, TActor, K> | TContext[K];
|
|
530
508
|
};
|
|
531
509
|
export type Mapper<TContext extends MachineContext, TEvent extends EventObject, TResult> = (args: {
|
|
532
510
|
context: TContext;
|
|
@@ -536,7 +514,7 @@ export type Mapper<TContext extends MachineContext, TEvent extends EventObject,
|
|
|
536
514
|
export type PropertyMapper<TContext extends MachineContext, TEvent extends EventObject, TParams extends {}> = {
|
|
537
515
|
[K in keyof TParams]?: Mapper<TContext, TEvent, TParams[K]> | TParams[K];
|
|
538
516
|
};
|
|
539
|
-
export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO, TODO>, 'target' | 'guard'> {
|
|
517
|
+
export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO, TODO, TODO>, 'target' | 'guard'> {
|
|
540
518
|
target: ReadonlyArray<StateNode<TContext, TEvent>> | undefined;
|
|
541
519
|
source: StateNode<TContext, TEvent>;
|
|
542
520
|
actions: readonly UnknownAction[];
|
|
@@ -561,7 +539,7 @@ export type TransitionDefinitionMap<TContext extends MachineContext, TEvent exte
|
|
|
561
539
|
[K in EventDescriptor<TEvent>]: Array<TransitionDefinition<TContext, ExtractEvent<TEvent, K>>>;
|
|
562
540
|
};
|
|
563
541
|
export interface DelayedTransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends TransitionDefinition<TContext, TEvent> {
|
|
564
|
-
delay: number | string | DelayExpr<TContext, TEvent, undefined>;
|
|
542
|
+
delay: number | string | DelayExpr<TContext, TEvent, undefined, TEvent>;
|
|
565
543
|
}
|
|
566
544
|
export interface StateLike<TContext extends MachineContext> {
|
|
567
545
|
value: StateValue;
|
|
@@ -590,14 +568,6 @@ export interface ActorOptions<TLogic extends AnyActorLogic> {
|
|
|
590
568
|
clock?: Clock;
|
|
591
569
|
logger?: (...args: any[]) => void;
|
|
592
570
|
parent?: ActorRef<any>;
|
|
593
|
-
/**
|
|
594
|
-
* If `true`, defers processing of sent events until the service
|
|
595
|
-
* is initialized (`.start()`). Otherwise, an error will be thrown
|
|
596
|
-
* for events sent to an uninitialized service.
|
|
597
|
-
*
|
|
598
|
-
* Default: `true`
|
|
599
|
-
*/
|
|
600
|
-
deferEvents?: boolean;
|
|
601
571
|
/**
|
|
602
572
|
* The custom `id` for referencing this service.
|
|
603
573
|
*/
|
|
@@ -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, MachineContext, Mapper, Observer,
|
|
3
|
+
import type { ActorLogic, AnyEventObject, EventObject, MachineContext, Mapper, Observer, ErrorActorEvent, SingleOrArray, StateLike, StateValue, Subscribable, TransitionConfigTarget, AnyActorRef, AnyTransitionConfig } 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[];
|
|
@@ -34,7 +34,7 @@ export declare function partition<T, A extends T, B extends T>(items: T[], predi
|
|
|
34
34
|
export declare function isArray(value: any): value is readonly any[];
|
|
35
35
|
export declare function isObservable<T>(value: any): value is Subscribable<T>;
|
|
36
36
|
export declare const uniqueId: () => string;
|
|
37
|
-
export declare function
|
|
37
|
+
export declare function isErrorActorEvent(event: AnyEventObject): event is ErrorActorEvent;
|
|
38
38
|
export declare function toTransitionConfigArray<TContext extends MachineContext, TEvent extends EventObject>(configLike: SingleOrArray<AnyTransitionConfig | TransitionConfigTarget>): Array<AnyTransitionConfig>;
|
|
39
39
|
export declare function normalizeTarget<TContext extends MachineContext, TEvent extends EventObject>(target: SingleOrArray<string | StateNode<TContext, TEvent>> | undefined): ReadonlyArray<string | StateNode<TContext, TEvent>> | undefined;
|
|
40
40
|
export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
|