xstate 4.25.0 → 4.27.0-pr2674-2021926101023
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 +79 -0
- package/dist/xstate.cjs.d.ts +11 -0
- package/dist/xstate.cjs.js +16 -0
- package/dist/xstate.interpreter.js +1 -1
- 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 +11 -9
- package/es/StateNode.d.ts +21 -15
- package/es/StateNode.js +15 -13
- package/es/actions.d.ts +4 -5
- package/es/behaviors.d.ts +1 -1
- package/es/devTools.d.ts +1 -1
- package/es/each.d.ts +1 -1
- package/es/index.d.ts +1 -0
- package/es/interpreter.d.ts +35 -25
- package/es/interpreter.js +2 -1
- package/es/model.d.ts +2 -2
- package/es/model.types.d.ts +8 -9
- package/es/scxml.d.ts +2 -2
- package/es/stateUtils.d.ts +7 -5
- package/es/stateUtils.js +7 -2
- package/es/typegenTypes.d.ts +92 -0
- package/es/types.d.ts +111 -50
- 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 +11 -9
- package/lib/StateNode.d.ts +21 -15
- package/lib/StateNode.js +14 -12
- package/lib/actions.d.ts +4 -5
- package/lib/behaviors.d.ts +1 -1
- package/lib/devTools.d.ts +1 -1
- package/lib/each.d.ts +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/interpreter.d.ts +35 -25
- package/lib/interpreter.js +2 -1
- package/lib/model.d.ts +2 -2
- package/lib/model.types.d.ts +8 -9
- package/lib/scxml.d.ts +2 -2
- package/lib/stateUtils.d.ts +7 -5
- package/lib/stateUtils.js +6 -0
- package/lib/typegenTypes.d.ts +92 -0
- package/lib/typegenTypes.js +2 -0
- package/lib/types.d.ts +111 -50
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +1 -1
- package/package.json +1 -1
package/es/interpreter.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, SingleOrArray, Subscribable, DoneEvent, MachineOptions, SCXML, EventData, Observer, Spawnable, Typestate, ActorRef, ActorRefFrom, Behavior, Subscription } from './types';
|
|
2
2
|
import { State } from './State';
|
|
3
|
+
import { AreAllImplementationsAssumedToBeProvided, TypegenDisabled } from './typegenTypes';
|
|
3
4
|
export declare type StateListener<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
|
|
4
5
|
value: any;
|
|
5
6
|
context: TContext;
|
|
6
|
-
}> = (state: State<TContext, TEvent, TStateSchema, TTypestate>, event: TEvent) => void;
|
|
7
|
+
}, TResolvedTypesMeta = TypegenDisabled> = (state: State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>, event: TEvent) => void;
|
|
7
8
|
export declare type ContextListener<TContext = DefaultContext> = (context: TContext, prevContext: TContext | undefined) => void;
|
|
8
9
|
export declare type EventListener<TEvent extends EventObject = EventObject> = (event: TEvent) => void;
|
|
9
10
|
export declare type Listener = () => void;
|
|
@@ -29,15 +30,24 @@ declare global {
|
|
|
29
30
|
export declare class Interpreter<TContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
|
|
30
31
|
value: any;
|
|
31
32
|
context: TContext;
|
|
32
|
-
}> implements ActorRef<TEvent, State<TContext, TEvent, TStateSchema, TTypestate>> {
|
|
33
|
-
machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
|
|
33
|
+
}, TResolvedTypesMeta = TypegenDisabled> implements ActorRef<TEvent, State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>> {
|
|
34
|
+
machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate, any, TResolvedTypesMeta>;
|
|
34
35
|
/**
|
|
35
36
|
* The default interpreter options:
|
|
36
37
|
*
|
|
37
38
|
* - `clock` uses the global `setTimeout` and `clearTimeout` functions
|
|
38
39
|
* - `logger` uses the global `console.log()` method
|
|
39
40
|
*/
|
|
40
|
-
static defaultOptions:
|
|
41
|
+
static defaultOptions: {
|
|
42
|
+
execute: boolean;
|
|
43
|
+
deferEvents: boolean;
|
|
44
|
+
clock: {
|
|
45
|
+
setTimeout: (fn: any, ms: any) => number;
|
|
46
|
+
clearTimeout: (id: any) => void;
|
|
47
|
+
};
|
|
48
|
+
logger: any;
|
|
49
|
+
devTools: boolean;
|
|
50
|
+
};
|
|
41
51
|
/**
|
|
42
52
|
* The current state of the interpreted machine.
|
|
43
53
|
*/
|
|
@@ -77,9 +87,9 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
77
87
|
* @param machine The machine to be interpreted
|
|
78
88
|
* @param options Interpreter options
|
|
79
89
|
*/
|
|
80
|
-
constructor(machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate>, options?:
|
|
81
|
-
get initialState(): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
82
|
-
get state(): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
90
|
+
constructor(machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate, any, TResolvedTypesMeta>, options?: InterpreterOptions);
|
|
91
|
+
get initialState(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
92
|
+
get state(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
83
93
|
static interpret: typeof interpret;
|
|
84
94
|
/**
|
|
85
95
|
* Executes the actions of the given state, with that state's `context` and `event`.
|
|
@@ -87,56 +97,56 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
87
97
|
* @param state The state whose actions will be executed
|
|
88
98
|
* @param actionsConfig The action implementations to use
|
|
89
99
|
*/
|
|
90
|
-
execute(state: State<TContext, TEvent, TStateSchema, TTypestate>, actionsConfig?: MachineOptions<TContext, TEvent>['actions']): void;
|
|
100
|
+
execute(state: State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>, actionsConfig?: MachineOptions<TContext, TEvent>['actions']): void;
|
|
91
101
|
private update;
|
|
92
|
-
onTransition(listener: StateListener<TContext, TEvent, TStateSchema, TTypestate>): this;
|
|
93
|
-
subscribe(nextListener?: (state: State<TContext, TEvent, any, TTypestate>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
|
|
94
|
-
subscribe(observer: Observer<State<TContext, TEvent, any, TTypestate>>): Subscription;
|
|
102
|
+
onTransition(listener: StateListener<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>): this;
|
|
103
|
+
subscribe(nextListener?: (state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
|
|
104
|
+
subscribe(observer: Observer<State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>>): Subscription;
|
|
95
105
|
/**
|
|
96
106
|
* Adds an event listener that is notified whenever an event is sent to the running interpreter.
|
|
97
107
|
* @param listener The event listener
|
|
98
108
|
*/
|
|
99
|
-
onEvent(listener: EventListener):
|
|
109
|
+
onEvent(listener: EventListener): this;
|
|
100
110
|
/**
|
|
101
111
|
* Adds an event listener that is notified whenever a `send` event occurs.
|
|
102
112
|
* @param listener The event listener
|
|
103
113
|
*/
|
|
104
|
-
onSend(listener: EventListener):
|
|
114
|
+
onSend(listener: EventListener): this;
|
|
105
115
|
/**
|
|
106
116
|
* Adds a context listener that is notified whenever the state context changes.
|
|
107
117
|
* @param listener The context listener
|
|
108
118
|
*/
|
|
109
|
-
onChange(listener: ContextListener<TContext>):
|
|
119
|
+
onChange(listener: ContextListener<TContext>): this;
|
|
110
120
|
/**
|
|
111
121
|
* Adds a listener that is notified when the machine is stopped.
|
|
112
122
|
* @param listener The listener
|
|
113
123
|
*/
|
|
114
|
-
onStop(listener: Listener):
|
|
124
|
+
onStop(listener: Listener): this;
|
|
115
125
|
/**
|
|
116
126
|
* Adds a state listener that is notified when the statechart has reached its final state.
|
|
117
127
|
* @param listener The state listener
|
|
118
128
|
*/
|
|
119
|
-
onDone(listener: EventListener<DoneEvent>):
|
|
129
|
+
onDone(listener: EventListener<DoneEvent>): this;
|
|
120
130
|
/**
|
|
121
131
|
* Removes a listener.
|
|
122
132
|
* @param listener The listener to remove
|
|
123
133
|
*/
|
|
124
|
-
off(listener: (...args: any[]) => void):
|
|
134
|
+
off(listener: (...args: any[]) => void): this;
|
|
125
135
|
/**
|
|
126
136
|
* Alias for Interpreter.prototype.start
|
|
127
137
|
*/
|
|
128
|
-
init: (initialState?: StateValue | State<TContext, TEvent, TStateSchema, TTypestate> | undefined) =>
|
|
138
|
+
init: (initialState?: StateValue | State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta> | undefined) => this;
|
|
129
139
|
/**
|
|
130
140
|
* Starts the interpreter from the given state, or the initial state.
|
|
131
141
|
* @param initialState The state to start the statechart from
|
|
132
142
|
*/
|
|
133
|
-
start(initialState?: State<TContext, TEvent, TStateSchema, TTypestate> | StateValue):
|
|
143
|
+
start(initialState?: State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta> | StateValue): this;
|
|
134
144
|
/**
|
|
135
145
|
* Stops the interpreter and unsubscribe all listeners.
|
|
136
146
|
*
|
|
137
147
|
* This will also notify the `onStop` listeners.
|
|
138
148
|
*/
|
|
139
|
-
stop():
|
|
149
|
+
stop(): this;
|
|
140
150
|
/**
|
|
141
151
|
* Sends an event to the running interpreter to trigger a transition.
|
|
142
152
|
*
|
|
@@ -146,7 +156,7 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
146
156
|
*
|
|
147
157
|
* @param event The event(s) to send
|
|
148
158
|
*/
|
|
149
|
-
send: (event: SingleOrArray<Event<TEvent>> | SCXML.Event<TEvent>, payload?: EventData | undefined) => State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
159
|
+
send: (event: SingleOrArray<Event<TEvent>> | SCXML.Event<TEvent>, payload?: EventData | undefined) => State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
150
160
|
private batch;
|
|
151
161
|
/**
|
|
152
162
|
* Returns a send function bound to this interpreter instance.
|
|
@@ -162,7 +172,7 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
162
172
|
*
|
|
163
173
|
* @param event The event to determine the next state
|
|
164
174
|
*/
|
|
165
|
-
nextState(event: Event<TEvent> | SCXML.Event<TEvent>): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
175
|
+
nextState(event: Event<TEvent> | SCXML.Event<TEvent>): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
166
176
|
private forward;
|
|
167
177
|
private defer;
|
|
168
178
|
private cancel;
|
|
@@ -186,8 +196,8 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
186
196
|
toJSON(): {
|
|
187
197
|
id: string;
|
|
188
198
|
};
|
|
189
|
-
[Symbol.observable](): Subscribable<State<TContext, TEvent, TStateSchema, TTypestate>>;
|
|
190
|
-
getSnapshot(): State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
199
|
+
[Symbol.observable](): Subscribable<State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>>;
|
|
200
|
+
getSnapshot(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
191
201
|
}
|
|
192
202
|
export declare function spawn<T extends Behavior<any, any>>(entity: T, nameOrOptions?: string | SpawnOptions): ActorRefFrom<T>;
|
|
193
203
|
export declare function spawn<TC, TE extends EventObject>(entity: StateMachine<TC, any, TE>, nameOrOptions?: string | SpawnOptions): ActorRefFrom<StateMachine<TC, any, TE>>;
|
|
@@ -201,6 +211,6 @@ export declare function spawn(entity: Spawnable, nameOrOptions?: string | SpawnO
|
|
|
201
211
|
export declare function interpret<TContext = DefaultContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
|
|
202
212
|
value: any;
|
|
203
213
|
context: TContext;
|
|
204
|
-
}>(machine: StateMachine<TContext, TStateSchema, TEvent, TTypestate
|
|
214
|
+
}, TResolvedTypesMeta = TypegenDisabled>(machine: AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends true ? StateMachine<TContext, TStateSchema, TEvent, TTypestate, any, TResolvedTypesMeta> : 'Some implementations missing', options?: InterpreterOptions): Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta>;
|
|
205
215
|
export {};
|
|
206
216
|
//# sourceMappingURL=interpreter.d.ts.map
|
package/es/interpreter.js
CHANGED
package/es/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/es/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 } 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
|
+
<TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: MachineConfig<TContext, any, TEvent, TAction, TTypesMeta>, implementations?: InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction>>): StateMachine<TContext, any, TEvent, {
|
|
11
|
+
value: any;
|
|
12
|
+
context: TContext;
|
|
13
|
+
}, TAction, ResolveTypegenMeta<TTypesMeta, TEvent, TAction>>;
|
|
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/es/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>;
|
|
6
6
|
//# sourceMappingURL=scxml.d.ts.map
|
package/es/stateUtils.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
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>) => 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>>): Iterable<StateNode<TC, any, TE, any>>;
|
|
7
|
+
export declare function getAllStateNodes<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE, any, any>): Array<StateNode<TC, any, TE, any, any>>;
|
|
8
|
+
export declare function getConfiguration<TC, TE extends EventObject>(prevStateNodes: Iterable<StateNode<TC, any, TE, any, any>>, stateNodes: Iterable<StateNode<TC, any, TE, any, any>>): Iterable<StateNode<TC, any, TE, 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>>, stateNode: StateNode<TC, any, TE, any, any>): boolean;
|
|
13
14
|
export declare function getMeta(configuration?: StateNode[]): Record<string, any>;
|
|
15
|
+
export declare function getTagsFromConfiguration(configuration: StateNode<any, any, any, any>[]): Set<string>;
|
|
14
16
|
export {};
|
|
15
17
|
//# sourceMappingURL=stateUtils.d.ts.map
|
package/es/stateUtils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __values, __spreadArray, __read } from './_virtual/_tslib.js';
|
|
2
|
-
import {
|
|
2
|
+
import { flatten, keys } from './utils.js';
|
|
3
3
|
|
|
4
4
|
var isLeafNode = function (stateNode) {
|
|
5
5
|
return stateNode.type === 'atomic' || stateNode.type === 'final';
|
|
@@ -252,5 +252,10 @@ function getMeta(configuration) {
|
|
|
252
252
|
return acc;
|
|
253
253
|
}, {});
|
|
254
254
|
}
|
|
255
|
+
function getTagsFromConfiguration(configuration) {
|
|
256
|
+
return new Set(flatten(configuration.map(function (sn) {
|
|
257
|
+
return sn.tags;
|
|
258
|
+
})));
|
|
259
|
+
}
|
|
255
260
|
|
|
256
|
-
export { getAdjList, getAllStateNodes, getChildren, getConfiguration, getMeta, getValue, has, isInFinalState, isLeafNode, nextEvents };
|
|
261
|
+
export { getAdjList, getAllStateNodes, getChildren, getConfiguration, getMeta, getTagsFromConfiguration, getValue, has, isInFinalState, isLeafNode, nextEvents };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { ActionObject, ActionFunction, Cast, ConditionPredicate, BaseActionObject, DelayConfig, EventObject, InvokeCreator, IndexByType, IsNever, MachineOptions, Prop, Values } 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
|
+
matchesStates: string;
|
|
10
|
+
tags: string;
|
|
11
|
+
missingImplementations: {
|
|
12
|
+
actions: string;
|
|
13
|
+
delays: string;
|
|
14
|
+
guards: string;
|
|
15
|
+
services: string;
|
|
16
|
+
};
|
|
17
|
+
internalEvents: {};
|
|
18
|
+
invokeSrcNameMap: Record<string, string>;
|
|
19
|
+
eventsCausingActions: Record<string, string>;
|
|
20
|
+
eventsCausingDelays: Record<string, string>;
|
|
21
|
+
eventsCausingGuards: Record<string, string>;
|
|
22
|
+
eventsCausingServices: Record<string, string>;
|
|
23
|
+
}
|
|
24
|
+
export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
25
|
+
indexedActions: Record<string, BaseActionObject>;
|
|
26
|
+
indexedEvents: Record<string, EventObject>;
|
|
27
|
+
}
|
|
28
|
+
export declare type TypegenConstraint = TypegenEnabled | TypegenDisabled;
|
|
29
|
+
export declare type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
|
|
30
|
+
[K in keyof TMissingImplementations]: TMissingImplementations[K];
|
|
31
|
+
}>> extends true ? true : false : true;
|
|
32
|
+
export declare type MarkAllImplementationsAsProvided<TResolvedTypesMeta> = TResolvedTypesMeta & {
|
|
33
|
+
missingImplementations: {
|
|
34
|
+
actions: never;
|
|
35
|
+
delays: never;
|
|
36
|
+
guards: never;
|
|
37
|
+
services: never;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
declare type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
|
|
41
|
+
declare type AllowAllEvents = {
|
|
42
|
+
eventsCausingActions: Record<string, string>;
|
|
43
|
+
eventsCausingDelays: Record<string, string>;
|
|
44
|
+
eventsCausingGuards: Record<string, string>;
|
|
45
|
+
eventsCausingServices: Record<string, string>;
|
|
46
|
+
};
|
|
47
|
+
export declare type ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject> = TTypesMeta extends TypegenEnabled ? TTypesMeta & {
|
|
48
|
+
indexedActions: IndexByType<TAction>;
|
|
49
|
+
indexedEvents: MergeWithInternalEvents<IndexByType<TEvent>, Prop<TTypesMeta, 'internalEvents'>>;
|
|
50
|
+
} : MarkAllImplementationsAsProvided<TypegenDisabled> & AllowAllEvents & {
|
|
51
|
+
indexedActions: IndexByType<TAction>;
|
|
52
|
+
indexedEvents: Record<string, TEvent> & {
|
|
53
|
+
__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__: {
|
|
54
|
+
data: any;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
|
|
58
|
+
};
|
|
59
|
+
export declare type TypegenMachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
|
|
60
|
+
[K in keyof TEventsCausingActions]?: ActionObject<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>> | ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedActions, K>, BaseActionObject>>;
|
|
61
|
+
};
|
|
62
|
+
export declare type TypegenMachineOptionsDelays<TContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<TResolvedTypesMeta, 'eventsCausingDelays'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
|
|
63
|
+
[K in keyof TEventsCausingDelays]?: DelayConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingDelays[K]>, EventObject>>;
|
|
64
|
+
};
|
|
65
|
+
export declare type TypegenMachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<TResolvedTypesMeta, 'eventsCausingGuards'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
|
|
66
|
+
[K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
|
|
67
|
+
};
|
|
68
|
+
export declare type TypegenMachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
|
|
69
|
+
[K in keyof TEventsCausingServices]?: InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>>;
|
|
70
|
+
};
|
|
71
|
+
declare type MakeKeysRequired<T extends string> = {
|
|
72
|
+
[K in T]: unknown;
|
|
73
|
+
};
|
|
74
|
+
declare type MaybeMakeMissingImplementationsRequired<TImplementationType, TMissingImplementationsForType, TRequireMissingImplementations> = TRequireMissingImplementations extends true ? IsNever<TMissingImplementationsForType> extends true ? {} : {
|
|
75
|
+
[K in Cast<TImplementationType, string>]: MakeKeysRequired<Cast<TMissingImplementationsForType, string>>;
|
|
76
|
+
} : {};
|
|
77
|
+
declare type GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'actions', Prop<TMissingImplementations, 'actions'>, TRequireMissingImplementations> & {
|
|
78
|
+
actions?: TypegenMachineOptionsActions<TContext, TResolvedTypesMeta>;
|
|
79
|
+
};
|
|
80
|
+
declare type GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'delays', Prop<TMissingImplementations, 'delays'>, TRequireMissingImplementations> & {
|
|
81
|
+
delays?: TypegenMachineOptionsDelays<TContext, TResolvedTypesMeta>;
|
|
82
|
+
};
|
|
83
|
+
declare type GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'guards', Prop<TMissingImplementations, 'guards'>, TRequireMissingImplementations> & {
|
|
84
|
+
guards?: TypegenMachineOptionsGuards<TContext, TResolvedTypesMeta>;
|
|
85
|
+
};
|
|
86
|
+
declare type GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'services', Prop<TMissingImplementations, 'services'>, TRequireMissingImplementations> & {
|
|
87
|
+
services?: TypegenMachineOptionsServices<TContext, TResolvedTypesMeta>;
|
|
88
|
+
};
|
|
89
|
+
export declare type TypegenMachineOptions<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations>;
|
|
90
|
+
export declare type MaybeTypegenMachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TResolvedTypesMeta = TypegenDisabled, TRequireMissingImplementations extends boolean = false> = TResolvedTypesMeta extends TypegenEnabled ? TypegenMachineOptions<TContext, TResolvedTypesMeta, TRequireMissingImplementations> : MachineOptions<TContext, TEvent, TAction>;
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=typegenTypes.d.ts.map
|