xstate 4.28.1 → 4.29.0
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/CHANGELOG.md +139 -91
- package/README.md +5 -5
- package/dist/xstate.js +1 -1
- package/dist/xstate.web.js +2 -2
- package/es/Actor.d.ts +1 -2
- package/es/Machine.d.ts +5 -4
- package/es/State.d.ts +13 -11
- package/es/StateNode.d.ts +22 -17
- package/es/StateNode.js +7 -7
- package/es/actions.d.ts +3 -4
- package/es/behaviors.d.ts +1 -1
- package/es/devTools.d.ts +3 -4
- package/es/each.d.ts +1 -1
- package/es/index.d.ts +3 -2
- package/es/index.js +1 -1
- package/es/interpreter.d.ts +37 -26
- package/es/model.d.ts +2 -2
- package/es/model.types.d.ts +8 -9
- package/es/schema.d.ts +1 -0
- package/es/schema.js +2 -1
- package/es/scxml.d.ts +2 -2
- package/es/stateUtils.d.ts +6 -5
- package/es/typegenTypes.d.ts +121 -0
- package/es/types.d.ts +105 -55
- package/es/utils.d.ts +1 -1
- package/es/utils.js +1 -1
- package/lib/Actor.d.ts +1 -2
- package/lib/Machine.d.ts +5 -4
- package/lib/State.d.ts +13 -11
- package/lib/StateNode.d.ts +22 -17
- package/lib/StateNode.js +7 -7
- package/lib/actions.d.ts +3 -4
- package/lib/behaviors.d.ts +1 -1
- package/lib/devTools.d.ts +3 -4
- package/lib/each.d.ts +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.js +1 -0
- package/lib/interpreter.d.ts +37 -26
- package/lib/model.d.ts +2 -2
- package/lib/model.types.d.ts +8 -9
- package/lib/schema.d.ts +1 -0
- package/lib/schema.js +2 -0
- package/lib/scxml.d.ts +2 -2
- package/lib/stateUtils.d.ts +6 -5
- package/lib/typegenTypes.d.ts +121 -0
- package/lib/typegenTypes.js +2 -0
- package/lib/types.d.ts +105 -55
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +1 -1
- package/package.json +5 -5
package/lib/StateNode.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Event, StateValue, StateTransition, MachineOptions, EventObject, HistoryValue, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, ActivityDefinition, StateNodeConfig, StateSchema, StateNodesConfig, InvokeDefinition, ActionObject, Mapper, PropertyMapper, SCXML, Typestate, TransitionDefinitionMap, MachineSchema } from './types';
|
|
1
|
+
import { Event, StateValue, StateTransition, MachineOptions, EventObject, HistoryValue, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, ActivityDefinition, StateNodeConfig, StateSchema, StateNodesConfig, InvokeDefinition, ActionObject, Mapper, PropertyMapper, SCXML, Typestate, TransitionDefinitionMap, MachineSchema, InternalMachineOptions, ServiceMap } from './types';
|
|
2
2
|
import { State } from './State';
|
|
3
|
+
import { TypegenDisabled } from './typegenTypes';
|
|
3
4
|
declare class StateNode<TContext = any, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
|
|
4
5
|
value: any;
|
|
5
6
|
context: TContext;
|
|
6
|
-
}> {
|
|
7
|
+
}, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = TypegenDisabled> {
|
|
7
8
|
/**
|
|
8
9
|
* The raw config used to create the machine.
|
|
9
10
|
*/
|
|
@@ -81,7 +82,7 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
|
|
|
81
82
|
/**
|
|
82
83
|
* The parent state node.
|
|
83
84
|
*/
|
|
84
|
-
parent?: StateNode<TContext, any, TEvent, any>;
|
|
85
|
+
parent?: StateNode<TContext, any, TEvent, any, any, any>;
|
|
85
86
|
/**
|
|
86
87
|
* The root machine node.
|
|
87
88
|
*/
|
|
@@ -119,11 +120,15 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
|
|
|
119
120
|
/**
|
|
120
121
|
* The raw config used to create the machine.
|
|
121
122
|
*/
|
|
122
|
-
config: StateNodeConfig<TContext, TStateSchema, TEvent>, options?:
|
|
123
|
+
config: StateNodeConfig<TContext, TStateSchema, TEvent>, options?: MachineOptions<TContext, TEvent>,
|
|
123
124
|
/**
|
|
124
125
|
* The initial extended state
|
|
125
126
|
*/
|
|
126
|
-
_context?: Readonly<TContext> | (() => Readonly<TContext>)
|
|
127
|
+
_context?: Readonly<TContext> | (() => Readonly<TContext>), // TODO: this is unsafe, but we're removing it in v5 anyway
|
|
128
|
+
_stateInfo?: {
|
|
129
|
+
parent: StateNode<any, any, any, any, any, any>;
|
|
130
|
+
key: string;
|
|
131
|
+
});
|
|
127
132
|
private _init;
|
|
128
133
|
/**
|
|
129
134
|
* Clones this state machine with custom options and context.
|
|
@@ -131,7 +136,7 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
|
|
|
131
136
|
* @param options Options (actions, guards, activities, services) to recursively merge with the existing options.
|
|
132
137
|
* @param context Custom context (will override predefined context)
|
|
133
138
|
*/
|
|
134
|
-
withConfig(options:
|
|
139
|
+
withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>;
|
|
135
140
|
/**
|
|
136
141
|
* Clones this state machine with custom context.
|
|
137
142
|
*
|
|
@@ -163,7 +168,7 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
|
|
|
163
168
|
*
|
|
164
169
|
* @param state The state value or State instance
|
|
165
170
|
*/
|
|
166
|
-
getStateNodes(state: StateValue | State<TContext, TEvent, any, TTypestate>): Array<StateNode<TContext, any, TEvent, TTypestate>>;
|
|
171
|
+
getStateNodes(state: StateValue | State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>): Array<StateNode<TContext, any, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>>;
|
|
167
172
|
/**
|
|
168
173
|
* Returns `true` if this state node explicitly handles the given event.
|
|
169
174
|
*
|
|
@@ -177,12 +182,12 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
|
|
|
177
182
|
*
|
|
178
183
|
* @param state The state to resolve
|
|
179
184
|
*/
|
|
180
|
-
resolveState(state: State<TContext, TEvent, any, any>): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
185
|
+
resolveState(state: State<TContext, TEvent, any, any, TResolvedTypesMeta>): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
181
186
|
private transitionLeafNode;
|
|
182
187
|
private transitionCompoundNode;
|
|
183
188
|
private transitionParallelNode;
|
|
184
189
|
private _transition;
|
|
185
|
-
getTransitionData(state: State<TContext, TEvent, any, any>, event: Event<TEvent> | SCXML.Event<TEvent>): StateTransition<TContext, TEvent> | undefined;
|
|
190
|
+
getTransitionData(state: State<TContext, TEvent, any, any, any>, event: Event<TEvent> | SCXML.Event<TEvent>): StateTransition<TContext, TEvent> | undefined;
|
|
186
191
|
private next;
|
|
187
192
|
private nodesFromChild;
|
|
188
193
|
/**
|
|
@@ -198,25 +203,25 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
|
|
|
198
203
|
* @param event The event that was sent at the current state
|
|
199
204
|
* @param context The current context (extended state) of the current state
|
|
200
205
|
*/
|
|
201
|
-
transition(state: StateValue | State<TContext, TEvent, any, TTypestate> | undefined, event: Event<TEvent> | SCXML.Event<TEvent>, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
206
|
+
transition(state: StateValue | State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta> | undefined, event: Event<TEvent> | SCXML.Event<TEvent>, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
202
207
|
private resolveRaisedTransition;
|
|
203
208
|
private resolveTransition;
|
|
204
209
|
/**
|
|
205
210
|
* Returns the child state node from its relative `stateKey`, or throws.
|
|
206
211
|
*/
|
|
207
|
-
getStateNode(stateKey: string): StateNode<TContext, any, TEvent, TTypestate>;
|
|
212
|
+
getStateNode(stateKey: string): StateNode<TContext, any, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>;
|
|
208
213
|
/**
|
|
209
214
|
* Returns the state node with the given `stateId`, or throws.
|
|
210
215
|
*
|
|
211
216
|
* @param stateId The state ID. The prefix "#" is removed.
|
|
212
217
|
*/
|
|
213
|
-
getStateNodeById(stateId: string): StateNode<TContext, any, TEvent, any>;
|
|
218
|
+
getStateNodeById(stateId: string): StateNode<TContext, any, TEvent, any, TServiceMap, TResolvedTypesMeta>;
|
|
214
219
|
/**
|
|
215
220
|
* Returns the relative state node from the given `statePath`, or throws.
|
|
216
221
|
*
|
|
217
222
|
* @param statePath The string or string array relative path to the state node.
|
|
218
223
|
*/
|
|
219
|
-
getStateNodeByPath(statePath: string | string[]): StateNode<TContext, any, TEvent, any>;
|
|
224
|
+
getStateNodeByPath(statePath: string | string[]): StateNode<TContext, any, TEvent, any, any, any>;
|
|
220
225
|
/**
|
|
221
226
|
* Resolves a partial state value with its full representation in this machine.
|
|
222
227
|
*
|
|
@@ -225,12 +230,12 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
|
|
|
225
230
|
resolve(stateValue: StateValue): StateValue;
|
|
226
231
|
private getResolvedPath;
|
|
227
232
|
private get initialStateValue();
|
|
228
|
-
getInitialState(stateValue: StateValue, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
233
|
+
getInitialState(stateValue: StateValue, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
229
234
|
/**
|
|
230
235
|
* The initial State instance, which includes all actions to be executed from
|
|
231
236
|
* entering the initial state.
|
|
232
237
|
*/
|
|
233
|
-
get initialState(): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
238
|
+
get initialState(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
234
239
|
/**
|
|
235
240
|
* The target state value of the history state node, if it exists. This represents the
|
|
236
241
|
* default state value to transition to if no history value exists yet.
|
|
@@ -244,14 +249,14 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
|
|
|
244
249
|
* @param resolve Whether state nodes should resolve to initial child state nodes
|
|
245
250
|
*/
|
|
246
251
|
getRelativeStateNodes(relativeStateId: StateNode<TContext, any, TEvent>, historyValue?: HistoryValue, resolve?: boolean): Array<StateNode<TContext, any, TEvent>>;
|
|
247
|
-
get initialStateNodes(): Array<StateNode<TContext, any, TEvent, any>>;
|
|
252
|
+
get initialStateNodes(): Array<StateNode<TContext, any, TEvent, any, any, any>>;
|
|
248
253
|
/**
|
|
249
254
|
* Retrieves state nodes from a relative path to this state node.
|
|
250
255
|
*
|
|
251
256
|
* @param relativePath The relative path from this state node
|
|
252
257
|
* @param historyValue
|
|
253
258
|
*/
|
|
254
|
-
getFromRelativePath(relativePath: string[]): Array<StateNode<TContext, any, TEvent, any>>;
|
|
259
|
+
getFromRelativePath(relativePath: string[]): Array<StateNode<TContext, any, TEvent, any, any, any>>;
|
|
255
260
|
private historyValue;
|
|
256
261
|
/**
|
|
257
262
|
* Resolves to the historical value(s) of the parent state node,
|
package/lib/StateNode.js
CHANGED
|
@@ -54,8 +54,8 @@ function () {
|
|
|
54
54
|
/**
|
|
55
55
|
* The initial extended state
|
|
56
56
|
*/
|
|
57
|
-
_context // TODO: this is unsafe, but we're removing it in v5 anyway
|
|
58
|
-
) {
|
|
57
|
+
_context, // TODO: this is unsafe, but we're removing it in v5 anyway
|
|
58
|
+
_stateInfo) {
|
|
59
59
|
var _this = this;
|
|
60
60
|
|
|
61
61
|
if (_context === void 0) {
|
|
@@ -85,8 +85,8 @@ function () {
|
|
|
85
85
|
this.idMap = {};
|
|
86
86
|
this.tags = [];
|
|
87
87
|
this.options = Object.assign(createDefaultOptions(), options);
|
|
88
|
-
this.parent =
|
|
89
|
-
this.key = this.config.key ||
|
|
88
|
+
this.parent = _stateInfo === null || _stateInfo === void 0 ? void 0 : _stateInfo.parent;
|
|
89
|
+
this.key = this.config.key || (_stateInfo === null || _stateInfo === void 0 ? void 0 : _stateInfo.key) || this.config.id || '(machine)';
|
|
90
90
|
this.machine = this.parent ? this.parent.machine : this;
|
|
91
91
|
this.path = this.parent ? this.parent.path.concat(this.key) : [];
|
|
92
92
|
this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : constants.STATE_DELIMITER);
|
|
@@ -104,9 +104,9 @@ function () {
|
|
|
104
104
|
this.states = this.config.states ? utils.mapValues(this.config.states, function (stateConfig, key) {
|
|
105
105
|
var _a;
|
|
106
106
|
|
|
107
|
-
var stateNode = new StateNode(stateConfig, {
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
var stateNode = new StateNode(stateConfig, {}, undefined, {
|
|
108
|
+
parent: _this,
|
|
109
|
+
key: key
|
|
110
110
|
});
|
|
111
111
|
Object.assign(_this.idMap, _tslib.__assign((_a = {}, _a[stateNode.id] = stateNode, _a), stateNode.idMap));
|
|
112
112
|
return stateNode;
|
package/lib/actions.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta, ChooseCondition, ChooseAction, AnyEventObject, Expr, Cast } from './types';
|
|
1
|
+
import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta, ChooseCondition, ChooseAction, AnyEventObject, Expr, StopAction, StopActionObject, Cast, ActorRef, EventFrom } from './types';
|
|
2
2
|
import * as actionTypes from './actionTypes';
|
|
3
3
|
import { State } from './State';
|
|
4
4
|
import { StateNode } from './StateNode';
|
|
5
|
-
import { ActorRef, EventFrom, StopAction, StopActionObject } from '.';
|
|
6
5
|
export { actionTypes };
|
|
7
6
|
export declare const initEvent: SCXML.Event<{
|
|
8
7
|
type: ActionTypes;
|
|
9
8
|
}>;
|
|
10
9
|
export declare function getActionFunction<TContext, TEvent extends EventObject>(actionType: ActionType, actionFunctionMap?: ActionFunctionMap<TContext, TEvent>): ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | undefined;
|
|
11
10
|
export declare function toActionObject<TContext, TEvent extends EventObject>(action: Action<TContext, TEvent>, actionFunctionMap?: ActionFunctionMap<TContext, TEvent>): ActionObject<TContext, TEvent>;
|
|
12
|
-
export declare const toActionObjects: <TContext, TEvent extends EventObject>(action?: SingleOrArray<Action<TContext, TEvent>> | undefined, actionFunctionMap?: ActionFunctionMap<TContext, TEvent,
|
|
11
|
+
export declare const toActionObjects: <TContext, TEvent extends EventObject>(action?: SingleOrArray<Action<TContext, TEvent>> | undefined, actionFunctionMap?: ActionFunctionMap<TContext, TEvent, import("./types").BaseActionObject> | undefined) => ActionObject<TContext, TEvent>[];
|
|
13
12
|
export declare function toActivityDefinition<TContext, TEvent extends EventObject>(action: string | ActivityDefinition<TContext, TEvent>): ActivityDefinition<TContext, TEvent>;
|
|
14
13
|
/**
|
|
15
14
|
* Raises an event. This places the event in the internal event queue, so that
|
|
@@ -151,5 +150,5 @@ export declare function forwardTo<TContext, TEvent extends EventObject>(target:
|
|
|
151
150
|
*/
|
|
152
151
|
export declare function escalate<TContext, TEvent extends EventObject, TErrorData = any>(errorData: TErrorData | ExprWithMeta<TContext, TEvent, TErrorData>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, AnyEventObject>;
|
|
153
152
|
export declare function choose<TContext, TEvent extends EventObject>(conds: Array<ChooseCondition<TContext, TEvent>>): ChooseAction<TContext, TEvent>;
|
|
154
|
-
export declare function resolveActions<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any>, currentState: State<TContext, TEvent> | undefined, currentContext: TContext, _event: SCXML.Event<TEvent>, actions: Array<ActionObject<TContext, TEvent>>, preserveActionOrder?: boolean): [Array<ActionObject<TContext, TEvent>>, TContext];
|
|
153
|
+
export declare function resolveActions<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any, any, any>, currentState: State<TContext, TEvent> | undefined, currentContext: TContext, _event: SCXML.Event<TEvent>, actions: Array<ActionObject<TContext, TEvent>>, preserveActionOrder?: boolean): [Array<ActionObject<TContext, TEvent>>, TContext];
|
|
155
154
|
//# sourceMappingURL=actions.d.ts.map
|
package/lib/behaviors.d.ts
CHANGED
package/lib/devTools.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { Interpreter } from '.';
|
|
2
1
|
import { AnyInterpreter } from './types';
|
|
3
2
|
declare type ServiceListener = (service: AnyInterpreter) => void;
|
|
4
3
|
export interface XStateDevInterface {
|
|
5
|
-
register: (service:
|
|
6
|
-
unregister: (service:
|
|
4
|
+
register: (service: AnyInterpreter) => void;
|
|
5
|
+
unregister: (service: AnyInterpreter) => void;
|
|
7
6
|
onRegister: (listener: ServiceListener) => {
|
|
8
7
|
unsubscribe: () => void;
|
|
9
8
|
};
|
|
10
|
-
services: Set<
|
|
9
|
+
services: Set<AnyInterpreter>;
|
|
11
10
|
}
|
|
12
11
|
export declare function getGlobal(): typeof globalThis | undefined;
|
|
13
12
|
export declare function registerService(service: AnyInterpreter): void;
|
package/lib/each.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventObject, SingleOrArray, ActionObject } from '
|
|
1
|
+
import { EventObject, SingleOrArray, ActionObject } from './types';
|
|
2
2
|
export declare function each<TContext, TEvent extends EventObject>(collection: keyof TContext, item: keyof TContext, actions: SingleOrArray<ActionObject<TContext, TEvent>>): ActionObject<TContext, TEvent>;
|
|
3
3
|
export declare function each<TContext, TEvent extends EventObject>(collection: keyof TContext, item: keyof TContext, index: keyof TContext, actions: SingleOrArray<ActionObject<TContext, TEvent>>): ActionObject<TContext, TEvent>;
|
|
4
4
|
//# sourceMappingURL=each.d.ts.map
|
package/lib/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { Actor } from './Actor';
|
|
|
7
7
|
import { raise, send, sendParent, sendTo, sendUpdate, log, start, stop, assign, after, done, respond, doneInvoke, forwardTo, escalate, choose, pure } from './actions';
|
|
8
8
|
import { interpret, Interpreter, spawn, InterpreterStatus } from './interpreter';
|
|
9
9
|
import { matchState } from './match';
|
|
10
|
-
import { createSchema } from './schema';
|
|
10
|
+
import { createSchema, t } from './schema';
|
|
11
11
|
declare const actions: {
|
|
12
12
|
raise: typeof raise;
|
|
13
13
|
send: typeof send;
|
|
@@ -27,8 +27,9 @@ declare const actions: {
|
|
|
27
27
|
choose: typeof choose;
|
|
28
28
|
pure: typeof pure;
|
|
29
29
|
};
|
|
30
|
-
export { Actor, Machine, StateNode, State, matchesState, mapState, actions, assign, send, sendParent, sendUpdate, forwardTo, interpret, Interpreter, InterpreterStatus, matchState, spawn, doneInvoke, createMachine, createSchema };
|
|
30
|
+
export { Actor, Machine, StateNode, State, matchesState, mapState, actions, assign, send, sendParent, sendUpdate, forwardTo, interpret, Interpreter, InterpreterStatus, matchState, spawn, doneInvoke, createMachine, createSchema, t };
|
|
31
31
|
export * from './types';
|
|
32
|
+
export * from './typegenTypes';
|
|
32
33
|
declare global {
|
|
33
34
|
interface SymbolConstructor {
|
|
34
35
|
readonly observable: symbol;
|
package/lib/index.js
CHANGED
package/lib/interpreter.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, SingleOrArray, Subscribable, DoneEvent, MachineOptions, SCXML, EventData, Observer, Spawnable, Typestate, ActorRef, ActorRefFrom, Behavior, Subscription } from './types';
|
|
2
3
|
import { State } from './State';
|
|
4
|
+
import { AreAllImplementationsAssumedToBeProvided, TypegenDisabled } from './typegenTypes';
|
|
3
5
|
export declare type StateListener<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
|
|
4
6
|
value: any;
|
|
5
7
|
context: TContext;
|
|
6
|
-
}> = (state: State<TContext, TEvent, TStateSchema, TTypestate>, event: TEvent) => void;
|
|
8
|
+
}, TResolvedTypesMeta = TypegenDisabled> = (state: State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>, event: TEvent) => void;
|
|
7
9
|
export declare type ContextListener<TContext = DefaultContext> = (context: TContext, prevContext: TContext | undefined) => void;
|
|
8
10
|
export declare type EventListener<TEvent extends EventObject = EventObject> = (event: TEvent) => void;
|
|
9
11
|
export declare type Listener = () => void;
|
|
@@ -24,15 +26,24 @@ export declare enum InterpreterStatus {
|
|
|
24
26
|
export declare class Interpreter<TContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
|
|
25
27
|
value: any;
|
|
26
28
|
context: TContext;
|
|
27
|
-
}> implements ActorRef<TEvent, State<TContext, TEvent, TStateSchema, TTypestate>> {
|
|
28
|
-
machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
|
|
29
|
+
}, TResolvedTypesMeta = TypegenDisabled> implements ActorRef<TEvent, State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>> {
|
|
30
|
+
machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate, any, any, TResolvedTypesMeta>;
|
|
29
31
|
/**
|
|
30
32
|
* The default interpreter options:
|
|
31
33
|
*
|
|
32
34
|
* - `clock` uses the global `setTimeout` and `clearTimeout` functions
|
|
33
35
|
* - `logger` uses the global `console.log()` method
|
|
34
36
|
*/
|
|
35
|
-
static defaultOptions:
|
|
37
|
+
static defaultOptions: {
|
|
38
|
+
execute: boolean;
|
|
39
|
+
deferEvents: boolean;
|
|
40
|
+
clock: {
|
|
41
|
+
setTimeout: (fn: any, ms: any) => NodeJS.Timeout;
|
|
42
|
+
clearTimeout: (id: any) => void;
|
|
43
|
+
};
|
|
44
|
+
logger: any;
|
|
45
|
+
devTools: boolean;
|
|
46
|
+
};
|
|
36
47
|
/**
|
|
37
48
|
* The current state of the interpreted machine.
|
|
38
49
|
*/
|
|
@@ -72,9 +83,9 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
72
83
|
* @param machine The machine to be interpreted
|
|
73
84
|
* @param options Interpreter options
|
|
74
85
|
*/
|
|
75
|
-
constructor(machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate>, options?:
|
|
76
|
-
get initialState(): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
77
|
-
get state(): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
86
|
+
constructor(machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate, any, any, TResolvedTypesMeta>, options?: InterpreterOptions);
|
|
87
|
+
get initialState(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
88
|
+
get state(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
78
89
|
static interpret: typeof interpret;
|
|
79
90
|
/**
|
|
80
91
|
* Executes the actions of the given state, with that state's `context` and `event`.
|
|
@@ -82,56 +93,56 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
82
93
|
* @param state The state whose actions will be executed
|
|
83
94
|
* @param actionsConfig The action implementations to use
|
|
84
95
|
*/
|
|
85
|
-
execute(state: State<TContext, TEvent, TStateSchema, TTypestate>, actionsConfig?: MachineOptions<TContext, TEvent>['actions']): void;
|
|
96
|
+
execute(state: State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>, actionsConfig?: MachineOptions<TContext, TEvent>['actions']): void;
|
|
86
97
|
private update;
|
|
87
|
-
onTransition(listener: StateListener<TContext, TEvent, TStateSchema, TTypestate>): this;
|
|
88
|
-
subscribe(nextListener?: (state: State<TContext, TEvent, any, TTypestate>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
|
|
89
|
-
subscribe(observer: Observer<State<TContext, TEvent, any, TTypestate>>): Subscription;
|
|
98
|
+
onTransition(listener: StateListener<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>): this;
|
|
99
|
+
subscribe(nextListener?: (state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
|
|
100
|
+
subscribe(observer: Observer<State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>>): Subscription;
|
|
90
101
|
/**
|
|
91
102
|
* Adds an event listener that is notified whenever an event is sent to the running interpreter.
|
|
92
103
|
* @param listener The event listener
|
|
93
104
|
*/
|
|
94
|
-
onEvent(listener: EventListener):
|
|
105
|
+
onEvent(listener: EventListener): this;
|
|
95
106
|
/**
|
|
96
107
|
* Adds an event listener that is notified whenever a `send` event occurs.
|
|
97
108
|
* @param listener The event listener
|
|
98
109
|
*/
|
|
99
|
-
onSend(listener: EventListener):
|
|
110
|
+
onSend(listener: EventListener): this;
|
|
100
111
|
/**
|
|
101
112
|
* Adds a context listener that is notified whenever the state context changes.
|
|
102
113
|
* @param listener The context listener
|
|
103
114
|
*/
|
|
104
|
-
onChange(listener: ContextListener<TContext>):
|
|
115
|
+
onChange(listener: ContextListener<TContext>): this;
|
|
105
116
|
/**
|
|
106
117
|
* Adds a listener that is notified when the machine is stopped.
|
|
107
118
|
* @param listener The listener
|
|
108
119
|
*/
|
|
109
|
-
onStop(listener: Listener):
|
|
120
|
+
onStop(listener: Listener): this;
|
|
110
121
|
/**
|
|
111
122
|
* Adds a state listener that is notified when the statechart has reached its final state.
|
|
112
123
|
* @param listener The state listener
|
|
113
124
|
*/
|
|
114
|
-
onDone(listener: EventListener<DoneEvent>):
|
|
125
|
+
onDone(listener: EventListener<DoneEvent>): this;
|
|
115
126
|
/**
|
|
116
127
|
* Removes a listener.
|
|
117
128
|
* @param listener The listener to remove
|
|
118
129
|
*/
|
|
119
|
-
off(listener: (...args: any[]) => void):
|
|
130
|
+
off(listener: (...args: any[]) => void): this;
|
|
120
131
|
/**
|
|
121
132
|
* Alias for Interpreter.prototype.start
|
|
122
133
|
*/
|
|
123
|
-
init: (initialState?: StateValue | State<TContext, TEvent, TStateSchema, TTypestate> | undefined) =>
|
|
134
|
+
init: (initialState?: StateValue | State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta> | undefined) => this;
|
|
124
135
|
/**
|
|
125
136
|
* Starts the interpreter from the given state, or the initial state.
|
|
126
137
|
* @param initialState The state to start the statechart from
|
|
127
138
|
*/
|
|
128
|
-
start(initialState?: State<TContext, TEvent, TStateSchema, TTypestate> | StateValue):
|
|
139
|
+
start(initialState?: State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta> | StateValue): this;
|
|
129
140
|
/**
|
|
130
141
|
* Stops the interpreter and unsubscribe all listeners.
|
|
131
142
|
*
|
|
132
143
|
* This will also notify the `onStop` listeners.
|
|
133
144
|
*/
|
|
134
|
-
stop():
|
|
145
|
+
stop(): this;
|
|
135
146
|
/**
|
|
136
147
|
* Sends an event to the running interpreter to trigger a transition.
|
|
137
148
|
*
|
|
@@ -141,7 +152,7 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
141
152
|
*
|
|
142
153
|
* @param event The event(s) to send
|
|
143
154
|
*/
|
|
144
|
-
send: (event: SingleOrArray<Event<TEvent>> | SCXML.Event<TEvent>, payload?: EventData | undefined) => State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
155
|
+
send: (event: SingleOrArray<Event<TEvent>> | SCXML.Event<TEvent>, payload?: EventData | undefined) => State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
145
156
|
private batch;
|
|
146
157
|
/**
|
|
147
158
|
* Returns a send function bound to this interpreter instance.
|
|
@@ -157,7 +168,7 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
157
168
|
*
|
|
158
169
|
* @param event The event to determine the next state
|
|
159
170
|
*/
|
|
160
|
-
nextState(event: Event<TEvent> | SCXML.Event<TEvent>): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
171
|
+
nextState(event: Event<TEvent> | SCXML.Event<TEvent>): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
161
172
|
private forward;
|
|
162
173
|
private defer;
|
|
163
174
|
private cancel;
|
|
@@ -181,11 +192,11 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
181
192
|
toJSON(): {
|
|
182
193
|
id: string;
|
|
183
194
|
};
|
|
184
|
-
[Symbol.observable](): Subscribable<State<TContext, TEvent, TStateSchema, TTypestate>>;
|
|
185
|
-
getSnapshot(): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
195
|
+
[Symbol.observable](): Subscribable<State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>>;
|
|
196
|
+
getSnapshot(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
186
197
|
}
|
|
187
198
|
export declare function spawn<T extends Behavior<any, any>>(entity: T, nameOrOptions?: string | SpawnOptions): ActorRefFrom<T>;
|
|
188
|
-
export declare function spawn<TC, TE extends EventObject>(entity: StateMachine<TC, any, TE>, nameOrOptions?: string | SpawnOptions): ActorRefFrom<StateMachine<TC, any, TE>>;
|
|
199
|
+
export declare function spawn<TC, TE extends EventObject>(entity: StateMachine<TC, any, TE, any, any, any, any>, nameOrOptions?: string | SpawnOptions): ActorRefFrom<StateMachine<TC, any, TE, any, any, any, any>>;
|
|
189
200
|
export declare function spawn(entity: Spawnable, nameOrOptions?: string | SpawnOptions): ActorRef<any>;
|
|
190
201
|
/**
|
|
191
202
|
* Creates a new Interpreter instance for the given machine with the provided options, if any.
|
|
@@ -196,6 +207,6 @@ export declare function spawn(entity: Spawnable, nameOrOptions?: string | SpawnO
|
|
|
196
207
|
export declare function interpret<TContext = DefaultContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
|
|
197
208
|
value: any;
|
|
198
209
|
context: TContext;
|
|
199
|
-
}>(machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate
|
|
210
|
+
}, TResolvedTypesMeta = TypegenDisabled>(machine: AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends true ? StateMachine<TContext, TStateSchema, TEvent, TTypestate, any, any, TResolvedTypesMeta> : 'Some implementations missing', options?: InterpreterOptions): Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta>;
|
|
200
211
|
export {};
|
|
201
212
|
//# sourceMappingURL=interpreter.d.ts.map
|
package/lib/model.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { EventObject, BaseActionObject } from './types';
|
|
2
|
-
import {
|
|
1
|
+
import type { Cast, EventObject, BaseActionObject, Prop, IsNever } from './types';
|
|
2
|
+
import { UnionFromCreatorsReturnTypes, FinalModelCreators, Model, ModelCreators } from './model.types';
|
|
3
3
|
export declare function createModel<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject>(initialContext: TContext): Model<TContext, TEvent, TAction, void>;
|
|
4
4
|
export declare function createModel<TContext, TModelCreators extends ModelCreators<TModelCreators>, TFinalModelCreators = FinalModelCreators<TModelCreators>, TComputedEvent = UnionFromCreatorsReturnTypes<Prop<TFinalModelCreators, 'events'>>, TComputedAction = UnionFromCreatorsReturnTypes<Prop<TFinalModelCreators, 'actions'>>>(initialContext: TContext, creators: TModelCreators): Model<TContext, Cast<TComputedEvent, EventObject>, IsNever<TComputedAction> extends true ? BaseActionObject : Cast<TComputedAction, BaseActionObject>, TFinalModelCreators>;
|
|
5
5
|
//# sourceMappingURL=model.d.ts.map
|
package/lib/model.types.d.ts
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare type IsNever<T> = [T] extends [never] ? true : false;
|
|
4
|
-
export declare type Cast<T extends any, TCastType extends any> = T extends TCastType ? T : TCastType;
|
|
5
|
-
export declare type Compute<A extends any> = {
|
|
6
|
-
[K in keyof A]: A[K];
|
|
7
|
-
} & unknown;
|
|
8
|
-
export declare type Prop<T, K> = K extends keyof T ? T[K] : never;
|
|
1
|
+
import { AnyFunction, AssignAction, Assigner, BaseActionObject, Compute, EventObject, ExtractEvent, MachineConfig, Prop, PropertyAssigner, StateMachine, InternalMachineOptions, ServiceMap } from './types';
|
|
2
|
+
import { ResolveTypegenMeta, TypegenConstraint, TypegenDisabled } from './typegenTypes';
|
|
9
3
|
export interface Model<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TModelCreators = void> {
|
|
10
4
|
initialContext: TContext;
|
|
11
5
|
assign: <TEventType extends TEvent['type'] = TEvent['type']>(assigner: Assigner<TContext, ExtractEvent<TEvent, TEventType>> | PropertyAssigner<TContext, ExtractEvent<TEvent, TEventType>>, eventType?: TEventType) => AssignAction<TContext, ExtractEvent<TEvent, TEventType>>;
|
|
12
6
|
events: Prop<TModelCreators, 'events'>;
|
|
13
7
|
actions: Prop<TModelCreators, 'actions'>;
|
|
14
8
|
reset: () => AssignAction<TContext, any>;
|
|
15
|
-
createMachine:
|
|
9
|
+
createMachine: {
|
|
10
|
+
<TServiceMap extends ServiceMap = ServiceMap, TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: MachineConfig<TContext, any, TEvent, TAction, TServiceMap, TTypesMeta>, implementations?: InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction, TServiceMap>>): StateMachine<TContext, any, TEvent, {
|
|
11
|
+
value: any;
|
|
12
|
+
context: TContext;
|
|
13
|
+
}, TAction, TServiceMap, ResolveTypegenMeta<TTypesMeta, TEvent, TAction, TServiceMap>>;
|
|
14
|
+
};
|
|
16
15
|
}
|
|
17
16
|
export declare type ModelContextFrom<TModel extends Model<any, any, any, any>> = TModel extends Model<infer TContext, any, any, any> ? TContext : never;
|
|
18
17
|
export declare type ModelEventsFrom<TModel extends Model<any, any, any, any> | undefined> = TModel extends Model<any, infer TEvent, any, any> ? TEvent : EventObject;
|
package/lib/schema.d.ts
CHANGED
package/lib/schema.js
CHANGED
package/lib/scxml.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StateMachine } from './index';
|
|
2
2
|
export interface ScxmlToMachineOptions {
|
|
3
3
|
delimiter?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function toMachine(xml: string, options: ScxmlToMachineOptions):
|
|
5
|
+
export declare function toMachine(xml: string, options: ScxmlToMachineOptions): StateMachine<any, any, any, any, any, any, any>;
|
|
6
6
|
//# sourceMappingURL=scxml.d.ts.map
|
package/lib/stateUtils.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { EventObject,
|
|
1
|
+
import { EventObject, StateValue } from './types';
|
|
2
|
+
import { StateNode } from './StateNode';
|
|
2
3
|
declare type Configuration<TC, TE extends EventObject> = Iterable<StateNode<TC, any, TE>>;
|
|
3
4
|
declare type AdjList<TC, TE extends EventObject> = Map<StateNode<TC, any, TE>, Array<StateNode<TC, any, TE>>>;
|
|
4
|
-
export declare const isLeafNode: (stateNode: StateNode<any, any, any, any>) => boolean;
|
|
5
|
+
export declare const isLeafNode: (stateNode: StateNode<any, any, any, any, any, any>) => boolean;
|
|
5
6
|
export declare function getChildren<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE>): Array<StateNode<TC, any, TE>>;
|
|
6
|
-
export declare function getAllStateNodes<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE, any>): Array<StateNode<TC, any, TE, any>>;
|
|
7
|
-
export declare function getConfiguration<TC, TE extends EventObject>(prevStateNodes: Iterable<StateNode<TC, any, TE, any>>, stateNodes: Iterable<StateNode<TC, any, TE, any>>): Set<StateNode<TC, any, TE, any>>;
|
|
7
|
+
export declare function getAllStateNodes<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE, any, any, any>): Array<StateNode<TC, any, TE, any, any, any>>;
|
|
8
|
+
export declare function getConfiguration<TC, TE extends EventObject>(prevStateNodes: Iterable<StateNode<TC, any, TE, any, any, any>>, stateNodes: Iterable<StateNode<TC, any, TE, any, any, any>>): Set<StateNode<TC, any, TE, any, any, any>>;
|
|
8
9
|
export declare function getAdjList<TC, TE extends EventObject>(configuration: Configuration<TC, TE>): AdjList<TC, TE>;
|
|
9
10
|
export declare function getValue<TC, TE extends EventObject>(rootNode: StateNode<TC, any, TE, any>, configuration: Configuration<TC, TE>): StateValue;
|
|
10
11
|
export declare function has<T>(iterable: Iterable<T>, item: T): boolean;
|
|
11
12
|
export declare function nextEvents<TC, TE extends EventObject>(configuration: Array<StateNode<TC, any, TE>>): Array<TE['type']>;
|
|
12
|
-
export declare function isInFinalState<TC, TE extends EventObject>(configuration: Array<StateNode<TC, any, TE, any>>, stateNode: StateNode<TC, any, TE, any>): boolean;
|
|
13
|
+
export declare function isInFinalState<TC, TE extends EventObject>(configuration: Array<StateNode<TC, any, TE, any, any, any>>, stateNode: StateNode<TC, any, TE, any, any, any>): boolean;
|
|
13
14
|
export declare function getMeta(configuration?: StateNode[]): Record<string, any>;
|
|
14
15
|
export declare function getTagsFromConfiguration(configuration: StateNode<any, any, any, any>[]): Set<string>;
|
|
15
16
|
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { BaseActionObject, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ServiceMap, Cast } from './types';
|
|
2
|
+
export interface TypegenDisabled {
|
|
3
|
+
'@@xstate/typegen': false;
|
|
4
|
+
}
|
|
5
|
+
export interface TypegenEnabled {
|
|
6
|
+
'@@xstate/typegen': true;
|
|
7
|
+
}
|
|
8
|
+
export interface TypegenMeta extends TypegenEnabled {
|
|
9
|
+
/**
|
|
10
|
+
* Allows you to specify all the results of state.matches
|
|
11
|
+
*/
|
|
12
|
+
matchesStates: string | {};
|
|
13
|
+
/**
|
|
14
|
+
* Allows you to specify all tags used by the machine
|
|
15
|
+
*/
|
|
16
|
+
tags: string;
|
|
17
|
+
/**
|
|
18
|
+
* Allows you to specify all the missing implementations
|
|
19
|
+
* of the machine
|
|
20
|
+
*/
|
|
21
|
+
missingImplementations: {
|
|
22
|
+
actions: string;
|
|
23
|
+
delays: string;
|
|
24
|
+
guards: string;
|
|
25
|
+
services: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* A map for the internal events of the machine.
|
|
29
|
+
*
|
|
30
|
+
* key: 'done.invoke.myService'
|
|
31
|
+
* value: {
|
|
32
|
+
* type: 'done.invoke.myService';
|
|
33
|
+
* data: unknown;
|
|
34
|
+
* __tip: 'Declare the type in event types!';
|
|
35
|
+
* }
|
|
36
|
+
*/
|
|
37
|
+
internalEvents: {};
|
|
38
|
+
/**
|
|
39
|
+
* Maps the name of the service to the event type
|
|
40
|
+
* of the done.invoke action
|
|
41
|
+
*
|
|
42
|
+
* key: 'invokeSrc'
|
|
43
|
+
* value: 'done.invoke.invokeName'
|
|
44
|
+
*/
|
|
45
|
+
invokeSrcNameMap: Record<string, string>;
|
|
46
|
+
/**
|
|
47
|
+
* Keeps track of which events lead to which
|
|
48
|
+
* actions.
|
|
49
|
+
*
|
|
50
|
+
* Key: 'EVENT_NAME'
|
|
51
|
+
* Value: 'actionName' | 'otherActionName'
|
|
52
|
+
*/
|
|
53
|
+
eventsCausingActions: Record<string, string>;
|
|
54
|
+
/**
|
|
55
|
+
* Keeps track of which events lead to which
|
|
56
|
+
* delays.
|
|
57
|
+
*
|
|
58
|
+
* Key: 'EVENT_NAME'
|
|
59
|
+
* Value: 'delayName' | 'otherDelayName'
|
|
60
|
+
*/
|
|
61
|
+
eventsCausingDelays: Record<string, string>;
|
|
62
|
+
/**
|
|
63
|
+
* Keeps track of which events lead to which
|
|
64
|
+
* guards.
|
|
65
|
+
*
|
|
66
|
+
* Key: 'EVENT_NAME'
|
|
67
|
+
* Value: 'guardName' | 'otherGuardName'
|
|
68
|
+
*/
|
|
69
|
+
eventsCausingGuards: Record<string, string>;
|
|
70
|
+
/**
|
|
71
|
+
* Keeps track of which events lead to which
|
|
72
|
+
* services.
|
|
73
|
+
*
|
|
74
|
+
* Key: 'EVENT_NAME'
|
|
75
|
+
* Value: 'serviceName' | 'otherServiceName'
|
|
76
|
+
*/
|
|
77
|
+
eventsCausingServices: Record<string, string>;
|
|
78
|
+
}
|
|
79
|
+
export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
80
|
+
indexedActions: Record<string, BaseActionObject>;
|
|
81
|
+
indexedEvents: Record<string, EventObject>;
|
|
82
|
+
}
|
|
83
|
+
export declare type TypegenConstraint = TypegenEnabled | TypegenDisabled;
|
|
84
|
+
export declare type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = IsAny<TResolvedTypesMeta> extends true ? true : TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
|
|
85
|
+
[K in keyof TMissingImplementations]: TMissingImplementations[K];
|
|
86
|
+
}>> extends true ? true : false : true;
|
|
87
|
+
export declare type MarkAllImplementationsAsProvided<TResolvedTypesMeta> = TResolvedTypesMeta & {
|
|
88
|
+
missingImplementations: {
|
|
89
|
+
actions: never;
|
|
90
|
+
delays: never;
|
|
91
|
+
guards: never;
|
|
92
|
+
services: never;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
declare type GenerateServiceEvent<TServiceName, TEventType, TServiceMap extends ServiceMap> = TEventType extends any ? {
|
|
96
|
+
type: TEventType;
|
|
97
|
+
} & Prop<TServiceMap, TServiceName> : never;
|
|
98
|
+
declare type GenerateServiceEvents<TServiceMap extends ServiceMap, TInvokeSrcNameMap> = string extends keyof TServiceMap ? never : Cast<{
|
|
99
|
+
[K in keyof TInvokeSrcNameMap]: GenerateServiceEvent<K, TInvokeSrcNameMap[K], TServiceMap>;
|
|
100
|
+
}[keyof TInvokeSrcNameMap], EventObject>;
|
|
101
|
+
declare type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
|
|
102
|
+
declare type AllowAllEvents = {
|
|
103
|
+
eventsCausingActions: Record<string, string>;
|
|
104
|
+
eventsCausingDelays: Record<string, string>;
|
|
105
|
+
eventsCausingGuards: Record<string, string>;
|
|
106
|
+
eventsCausingServices: Record<string, string>;
|
|
107
|
+
};
|
|
108
|
+
export declare type ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject, TServiceMap extends ServiceMap> = TTypesMeta extends TypegenEnabled ? TTypesMeta & {
|
|
109
|
+
indexedActions: IndexByType<TAction>;
|
|
110
|
+
indexedEvents: MergeWithInternalEvents<IndexByType<(string extends TEvent['type'] ? never : TEvent) | GenerateServiceEvents<TServiceMap, Prop<TTypesMeta, 'invokeSrcNameMap'>>>, Prop<TTypesMeta, 'internalEvents'>>;
|
|
111
|
+
} : MarkAllImplementationsAsProvided<TypegenDisabled> & AllowAllEvents & {
|
|
112
|
+
indexedActions: IndexByType<TAction>;
|
|
113
|
+
indexedEvents: Record<string, TEvent> & {
|
|
114
|
+
__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__: {
|
|
115
|
+
data: any;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
|
|
119
|
+
};
|
|
120
|
+
export {};
|
|
121
|
+
//# sourceMappingURL=typegenTypes.d.ts.map
|