xstate 5.0.0-alpha.0 → 5.0.0-alpha.2
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 +26 -15
- package/actions/dist/xstate-actions.cjs.dev.js +24 -25
- package/actions/dist/xstate-actions.cjs.prod.js +23 -24
- package/actions/dist/xstate-actions.esm.js +2 -2
- package/actions/dist/xstate-actions.umd.min.js +2 -0
- package/actions/dist/xstate-actions.umd.min.js.map +1 -0
- package/actions/dynamicAction.ts +15 -7
- package/actions/package.json +5 -1
- package/actors/dist/xstate-actors.cjs.d.ts +1 -1
- package/actors/dist/xstate-actors.cjs.dev.js +14 -14
- package/actors/dist/xstate-actors.cjs.prod.js +13 -13
- package/actors/dist/xstate-actors.esm.js +2 -2
- package/actors/dist/xstate-actors.umd.min.js +2 -0
- package/actors/dist/xstate-actors.umd.min.js.map +1 -0
- package/actors/package.json +5 -1
- package/dev/dist/xstate-dev.cjs.dev.js +1 -1
- package/dev/dist/xstate-dev.cjs.prod.js +0 -11
- package/dev/dist/xstate-dev.esm.js +1 -1
- package/dev/dist/xstate-dev.umd.min.js +2 -0
- package/dev/dist/xstate-dev.umd.min.js.map +1 -0
- package/dev/package.json +5 -1
- package/dist/{actions-6b86876d.cjs.dev.js → actions-1e9778c2.cjs.dev.js} +2819 -3334
- package/dist/actions-9778f6fb.esm.js +4246 -0
- package/dist/actions-acb29ffe.cjs.prod.js +4262 -0
- package/dist/declarations/actions/dynamicAction.d.ts +5 -3
- package/dist/declarations/src/Machine.d.ts +4 -4
- package/dist/declarations/src/Mailbox.d.ts +12 -12
- package/dist/declarations/src/SimulatedClock.d.ts +16 -16
- package/dist/declarations/src/State.d.ts +97 -104
- package/dist/declarations/src/StateMachine.d.ts +110 -112
- package/dist/declarations/src/StateNode.d.ts +127 -127
- package/dist/declarations/src/actionTypes.d.ts +16 -17
- package/dist/declarations/src/actions/assign.d.ts +7 -7
- package/dist/declarations/src/actions/cancel.d.ts +10 -10
- package/dist/declarations/src/actions/choose.d.ts +3 -3
- package/dist/declarations/src/actions/invoke.d.ts +3 -3
- package/dist/declarations/src/actions/log.d.ts +11 -11
- package/dist/declarations/src/actions/pure.d.ts +3 -3
- package/dist/declarations/src/actions/raise.d.ts +8 -9
- package/dist/declarations/src/actions/send.d.ts +53 -55
- package/dist/declarations/src/actions/stop.d.ts +7 -8
- package/dist/declarations/src/actions.d.ts +47 -44
- package/dist/declarations/src/actors/callback.d.ts +8 -0
- package/dist/declarations/src/actors/index.d.ts +27 -0
- package/dist/declarations/src/actors/observable.d.ts +23 -0
- package/dist/declarations/src/actors/promise.d.ts +12 -0
- package/dist/declarations/src/actors/transition.d.ts +13 -0
- package/dist/declarations/src/constants.d.ts +5 -5
- package/dist/declarations/src/dev/index.d.ts +14 -14
- package/dist/declarations/src/environment.d.ts +1 -1
- package/dist/declarations/src/guards.d.ts +8 -9
- package/dist/declarations/src/index.d.ts +44 -47
- package/dist/declarations/src/interpreter.d.ts +104 -147
- package/dist/declarations/src/mapState.d.ts +3 -3
- package/dist/declarations/src/memo.d.ts +2 -1
- package/dist/declarations/src/schema.d.ts +2 -2
- package/dist/declarations/src/spawn.d.ts +2 -2
- package/dist/declarations/src/stateUtils.d.ts +70 -85
- package/dist/declarations/src/symbolObservable.d.ts +1 -0
- package/dist/declarations/src/system.d.ts +2 -0
- package/dist/declarations/src/typegenTypes.d.ts +132 -132
- package/dist/declarations/src/types.d.ts +1008 -1026
- package/dist/declarations/src/utils.d.ts +58 -56
- package/dist/{index-20b364c4.esm.js → index-50bd0aff.esm.js} +0 -12
- package/dist/{index-2a564d03.cjs.dev.js → index-ebaab3c9.cjs.dev.js} +0 -12
- package/dist/xstate.cjs.dev.js +798 -100
- package/dist/xstate.cjs.prod.js +797 -99
- package/dist/xstate.esm.js +756 -55
- package/dist/xstate.umd.min.js +2 -0
- package/dist/xstate.umd.min.js.map +1 -0
- package/guards/dist/xstate-guards.cjs.dev.js +8 -8
- package/guards/dist/xstate-guards.cjs.prod.js +7 -7
- package/guards/dist/xstate-guards.esm.js +2 -2
- package/guards/dist/xstate-guards.umd.min.js +2 -0
- package/guards/dist/xstate-guards.umd.min.js.map +1 -0
- package/guards/package.json +5 -1
- package/package.json +28 -6
- package/CHANGELOG.md +0 -1986
- package/actions/ExecutableAction.ts +0 -58
- package/dist/Machine-9ce74c11.cjs.dev.js +0 -755
- package/dist/Machine-dca041dc.cjs.prod.js +0 -749
- package/dist/Machine-fb2f47f5.esm.js +0 -751
- package/dist/actions-70094c93.cjs.prod.js +0 -4765
- package/dist/actions-ff512f16.esm.js +0 -4757
- package/dist/declarations/actions/ExecutableAction.d.ts +0 -23
- package/dist/declarations/src/ObservableActorRef.d.ts +0 -25
- package/dist/declarations/src/actors.d.ts +0 -38
- package/dist/declarations/src/match.d.ts +0 -5
- package/dist/declarations/src/model.d.ts +0 -5
- package/dist/declarations/src/model.types.d.ts +0 -53
- package/dist/declarations/src/registry.d.ts +0 -8
- package/model/dist/xstate-model.cjs.d.ts +0 -1
- package/model/dist/xstate-model.cjs.dev.js +0 -41
- package/model/dist/xstate-model.cjs.js +0 -7
- package/model/dist/xstate-model.cjs.prod.js +0 -41
- package/model/dist/xstate-model.esm.js +0 -37
- package/model/package.json +0 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function createSpawner<TContext extends MachineContext, TEvent extends EventObject>(machine: AnyStateMachine, context: TContext, _event: SCXML.Event<TEvent>, mutCapturedActions: InvokeActionObject[]): Spawner;
|
|
1
|
+
import { InvokeActionObject, AnyStateMachine, Spawner, ActorRef, MachineContext, EventObject, SCXML } from '.';
|
|
2
|
+
export declare function createSpawner<TContext extends MachineContext, TEvent extends EventObject>(self: ActorRef<any, any> | undefined, machine: AnyStateMachine, context: TContext, _event: SCXML.Event<TEvent>, mutCapturedActions: InvokeActionObject[]): Spawner;
|
|
@@ -1,85 +1,70 @@
|
|
|
1
|
-
import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition,
|
|
2
|
-
import { State } from './State';
|
|
3
|
-
import { NULL_EVENT } from './constants';
|
|
4
|
-
import type {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export declare
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function
|
|
13
|
-
export declare
|
|
14
|
-
export declare function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export declare function
|
|
30
|
-
export declare function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
export declare function
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
39
|
-
*/
|
|
40
|
-
export declare function
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
*
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
};
|
|
72
|
-
export declare function resolveMicroTransition<TContext extends MachineContext, TEvent extends EventObject>(machine: StateMachine<TContext, TEvent, any, any, any>, transitions: Transitions<TContext, TEvent>, currentState: State<TContext, TEvent, any>, _event?: SCXML.Event<TEvent>): State<TContext, TEvent, any>;
|
|
73
|
-
declare type StateFromMachine<TMachine extends AnyStateMachine> = TMachine['initialState'];
|
|
74
|
-
export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, event: Event<TMachine['__TEvent']> | SCXML.Event<TMachine['__TEvent']> | null, machine: TMachine): typeof state;
|
|
75
|
-
/**
|
|
76
|
-
* Resolves a partial state value with its full representation in the state node's machine.
|
|
77
|
-
*
|
|
78
|
-
* @param stateValue The partial state value to resolve.
|
|
79
|
-
*/
|
|
80
|
-
export declare function resolveStateValue<TContext extends MachineContext, TEvent extends EventObject>(rootNode: StateNode<TContext, TEvent>, stateValue: StateValue): StateValue;
|
|
81
|
-
export declare function toState<TMachine extends AnyStateMachine>(state: StateValue | TMachine['initialState'], machine: TMachine): StateFromMachine<TMachine>;
|
|
82
|
-
export declare function stateValuesEqual(a: StateValue | undefined, b: StateValue | undefined): boolean;
|
|
83
|
-
export declare function getMeta(configuration?: Array<StateNode<any, any>>): Record<string, any>;
|
|
84
|
-
export declare function getTagsFromConfiguration(configuration: Array<StateNode<any, any>>): Set<string>;
|
|
85
|
-
export {};
|
|
1
|
+
import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, SingleOrArray, SCXML, StateValueMap, InitialTransitionConfig, MachineContext } from './types.js';
|
|
2
|
+
import { State } from './State.js';
|
|
3
|
+
import { NULL_EVENT } from './constants.js';
|
|
4
|
+
import type { StateNode } from './StateNode.js';
|
|
5
|
+
import { AnyActorContext, AnyHistoryValue, AnyState, AnyStateMachine, AnyStateNode, AnyTransitionDefinition, DelayedTransitionDefinition, InitialTransitionDefinition, StateFromMachine } from '.';
|
|
6
|
+
type Configuration<TContext extends MachineContext, TE extends EventObject> = Iterable<StateNode<TContext, TE>>;
|
|
7
|
+
type AnyConfiguration = Configuration<any, any>;
|
|
8
|
+
type AdjList = Map<AnyStateNode, Array<AnyStateNode>>;
|
|
9
|
+
export declare function getConfiguration(stateNodes: Iterable<AnyStateNode>): Set<AnyStateNode>;
|
|
10
|
+
export declare function getAdjList<TContext extends MachineContext, TE extends EventObject>(configuration: Configuration<TContext, TE>): AdjList;
|
|
11
|
+
export declare function getStateValue(rootNode: AnyStateNode, configuration: AnyConfiguration): StateValue;
|
|
12
|
+
export declare function isInFinalState(configuration: Array<AnyStateNode>, stateNode?: AnyStateNode): boolean;
|
|
13
|
+
export declare const isStateId: (str: string) => boolean;
|
|
14
|
+
export declare function getCandidates<TEvent extends EventObject>(stateNode: StateNode<any, TEvent>, receivedEventType: TEvent['type'],
|
|
15
|
+
/**
|
|
16
|
+
* If `true`, will use SCXML event partial token matching semantics
|
|
17
|
+
* without the need for the ".*" suffix
|
|
18
|
+
*/
|
|
19
|
+
partialMatch?: boolean): Array<TransitionDefinition<any, TEvent>>;
|
|
20
|
+
/**
|
|
21
|
+
* All delayed transitions from the config.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getDelayedTransitions<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode): Array<DelayedTransitionDefinition<TContext, TEvent>>;
|
|
24
|
+
export declare function formatTransition<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, transitionConfig: TransitionConfig<TContext, TEvent> & {
|
|
25
|
+
event: TEvent['type'] | typeof NULL_EVENT | '*';
|
|
26
|
+
}): AnyTransitionDefinition;
|
|
27
|
+
export declare function formatTransitions<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode): Array<AnyTransitionDefinition>;
|
|
28
|
+
export declare function formatInitialTransition<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, _target: SingleOrArray<string> | InitialTransitionConfig<TContext, TEvent>): InitialTransitionDefinition<TContext, TEvent>;
|
|
29
|
+
export declare function resolveTarget(stateNode: AnyStateNode, targets: Array<string | AnyStateNode> | undefined): Array<AnyStateNode> | undefined;
|
|
30
|
+
export declare function getInitialStateNodes(stateNode: AnyStateNode): Array<AnyStateNode>;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the child state node from its relative `stateKey`, or throws.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getStateNode(stateNode: AnyStateNode, stateKey: string): AnyStateNode;
|
|
35
|
+
/**
|
|
36
|
+
* Returns the state nodes represented by the current state value.
|
|
37
|
+
*
|
|
38
|
+
* @param state The state value or State instance
|
|
39
|
+
*/
|
|
40
|
+
export declare function getStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, state: StateValue | State<TContext, TEvent>): Array<AnyStateNode>;
|
|
41
|
+
export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
42
|
+
export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
43
|
+
export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
44
|
+
export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue, state: State<TContext, TEvent, any>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
45
|
+
export declare function removeConflictingTransitions(enabledTransitions: Array<AnyTransitionDefinition>, configuration: Set<AnyStateNode>, historyValue: AnyHistoryValue): Array<AnyTransitionDefinition>;
|
|
46
|
+
/**
|
|
47
|
+
* https://www.w3.org/TR/scxml/#microstepProcedure
|
|
48
|
+
*
|
|
49
|
+
* @private
|
|
50
|
+
* @param transitions
|
|
51
|
+
* @param currentState
|
|
52
|
+
* @param mutConfiguration
|
|
53
|
+
*/
|
|
54
|
+
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined, scxmlEvent: SCXML.Event<TEvent>): State<TContext, TEvent, any>;
|
|
55
|
+
export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: BaseActionObject[], scxmlEvent: SCXML.Event<TEvent>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined): {
|
|
56
|
+
nextState: AnyState;
|
|
57
|
+
};
|
|
58
|
+
export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, scxmlEvent: SCXML.Event<TMachine['__TEvent']>, actorCtx: AnyActorContext | undefined): {
|
|
59
|
+
state: typeof state;
|
|
60
|
+
microstates: Array<typeof state>;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Resolves a partial state value with its full representation in the state node's machine.
|
|
64
|
+
*
|
|
65
|
+
* @param stateValue The partial state value to resolve.
|
|
66
|
+
*/
|
|
67
|
+
export declare function resolveStateValue(rootNode: AnyStateNode, stateValue: StateValue): StateValue;
|
|
68
|
+
export declare function stateValuesEqual(a: StateValue | undefined, b: StateValue | undefined): boolean;
|
|
69
|
+
export declare function getInitialConfiguration(rootNode: AnyStateNode): AnyStateNode[];
|
|
70
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const symbolObservable: typeof Symbol.observable;
|
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
import {
|
|
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
|
-
actors: string;
|
|
24
|
-
delays: string;
|
|
25
|
-
guards: string;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* A map for the internal events of the machine.
|
|
29
|
-
*
|
|
30
|
-
* key: 'done.invoke.myActor'
|
|
31
|
-
* value: {
|
|
32
|
-
* type: 'done.invoke.myActor';
|
|
33
|
-
* data: unknown;
|
|
34
|
-
* __tip: 'Declare the type in event types!';
|
|
35
|
-
* }
|
|
36
|
-
*/
|
|
37
|
-
internalEvents: {};
|
|
38
|
-
/**
|
|
39
|
-
* Maps the name of the actor 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
|
-
* actors.
|
|
73
|
-
*
|
|
74
|
-
* Key: 'EVENT_NAME'
|
|
75
|
-
* Value: 'actorName' | 'otherActorName'
|
|
76
|
-
*/
|
|
77
|
-
eventsCausingActors: Record<string, string>;
|
|
78
|
-
}
|
|
79
|
-
export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
80
|
-
resolved: TypegenMeta & {
|
|
81
|
-
indexedActions: Record<string,
|
|
82
|
-
indexedEvents: Record<string, EventObject>;
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
export
|
|
86
|
-
export
|
|
87
|
-
[K in keyof TMissingImplementations]: TMissingImplementations[K];
|
|
88
|
-
}>> extends true ? true : false : true;
|
|
89
|
-
interface AllImplementationsProvided {
|
|
90
|
-
missingImplementations: {
|
|
91
|
-
actions: never;
|
|
92
|
-
actors: never;
|
|
93
|
-
delays: never;
|
|
94
|
-
guards: never;
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
export interface MarkAllImplementationsAsProvided<TResolvedTypesMeta> {
|
|
98
|
-
'@@xstate/typegen': Prop<TResolvedTypesMeta, '@@xstate/typegen'>;
|
|
99
|
-
resolved: Prop<TResolvedTypesMeta, 'resolved'> & AllImplementationsProvided;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
type: TEventType;
|
|
103
|
-
} & Prop<TActorMap, TActorName> : never;
|
|
104
|
-
|
|
105
|
-
[K in keyof TInvokeSrcNameMap]: GenerateActorEvent<K, TInvokeSrcNameMap[K], TActorMap>;
|
|
106
|
-
}[keyof TInvokeSrcNameMap], EventObject>;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
eventsCausingActions: Record<string, string>;
|
|
110
|
-
eventsCausingActors: Record<string, string>;
|
|
111
|
-
eventsCausingDelays: Record<string, string>;
|
|
112
|
-
eventsCausingGuards: Record<string, string>;
|
|
113
|
-
};
|
|
114
|
-
export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends
|
|
115
|
-
'@@xstate/typegen': TTypesMeta['@@xstate/typegen'];
|
|
116
|
-
resolved: {
|
|
117
|
-
enabled: TTypesMeta & {
|
|
118
|
-
indexedActions: IndexByType<TAction>;
|
|
119
|
-
indexedEvents: MergeWithInternalEvents<IndexByType<(string extends TEvent['type'] ? never : TEvent) | GenerateActorEvents<TActorMap, Prop<TTypesMeta, 'invokeSrcNameMap'>>>, Prop<TTypesMeta, 'internalEvents'>>;
|
|
120
|
-
};
|
|
121
|
-
disabled: TypegenDisabled & AllImplementationsProvided & AllowAllEvents & {
|
|
122
|
-
indexedActions: IndexByType<TAction>;
|
|
123
|
-
indexedEvents: Record<string, TEvent> & {
|
|
124
|
-
__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__: {
|
|
125
|
-
data: any;
|
|
126
|
-
};
|
|
127
|
-
};
|
|
128
|
-
invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
|
|
129
|
-
};
|
|
130
|
-
}[IsNever<TTypesMeta> extends true ? 'disabled' : TTypesMeta extends TypegenEnabled ? 'enabled' : 'disabled'];
|
|
131
|
-
}
|
|
132
|
-
export {};
|
|
1
|
+
import { EventObject, IndexByType, IsNever, Prop, Values, IsAny, ActorMap, Cast, ParameterizedObject } from './types.js';
|
|
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
|
+
actors: string;
|
|
24
|
+
delays: string;
|
|
25
|
+
guards: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* A map for the internal events of the machine.
|
|
29
|
+
*
|
|
30
|
+
* key: 'done.invoke.myActor'
|
|
31
|
+
* value: {
|
|
32
|
+
* type: 'done.invoke.myActor';
|
|
33
|
+
* data: unknown;
|
|
34
|
+
* __tip: 'Declare the type in event types!';
|
|
35
|
+
* }
|
|
36
|
+
*/
|
|
37
|
+
internalEvents: {};
|
|
38
|
+
/**
|
|
39
|
+
* Maps the name of the actor 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
|
+
* actors.
|
|
73
|
+
*
|
|
74
|
+
* Key: 'EVENT_NAME'
|
|
75
|
+
* Value: 'actorName' | 'otherActorName'
|
|
76
|
+
*/
|
|
77
|
+
eventsCausingActors: Record<string, string>;
|
|
78
|
+
}
|
|
79
|
+
export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
80
|
+
resolved: TypegenMeta & {
|
|
81
|
+
indexedActions: Record<string, ParameterizedObject>;
|
|
82
|
+
indexedEvents: Record<string, EventObject>;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export type TypegenConstraint = TypegenEnabled | TypegenDisabled;
|
|
86
|
+
export type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = IsAny<TResolvedTypesMeta> extends true ? true : TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
|
|
87
|
+
[K in keyof TMissingImplementations]: TMissingImplementations[K];
|
|
88
|
+
}>> extends true ? true : false : true;
|
|
89
|
+
interface AllImplementationsProvided {
|
|
90
|
+
missingImplementations: {
|
|
91
|
+
actions: never;
|
|
92
|
+
actors: never;
|
|
93
|
+
delays: never;
|
|
94
|
+
guards: never;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export interface MarkAllImplementationsAsProvided<TResolvedTypesMeta> {
|
|
98
|
+
'@@xstate/typegen': Prop<TResolvedTypesMeta, '@@xstate/typegen'>;
|
|
99
|
+
resolved: Prop<TResolvedTypesMeta, 'resolved'> & AllImplementationsProvided;
|
|
100
|
+
}
|
|
101
|
+
type GenerateActorEvent<TActorName, TEventType, TActorMap extends ActorMap> = TEventType extends any ? {
|
|
102
|
+
type: TEventType;
|
|
103
|
+
} & Prop<TActorMap, TActorName> : never;
|
|
104
|
+
type GenerateActorEvents<TActorMap extends ActorMap, TInvokeSrcNameMap> = string extends keyof TActorMap ? never : Cast<{
|
|
105
|
+
[K in keyof TInvokeSrcNameMap]: GenerateActorEvent<K, TInvokeSrcNameMap[K], TActorMap>;
|
|
106
|
+
}[keyof TInvokeSrcNameMap], EventObject>;
|
|
107
|
+
type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
|
|
108
|
+
type AllowAllEvents = {
|
|
109
|
+
eventsCausingActions: Record<string, string>;
|
|
110
|
+
eventsCausingActors: Record<string, string>;
|
|
111
|
+
eventsCausingDelays: Record<string, string>;
|
|
112
|
+
eventsCausingGuards: Record<string, string>;
|
|
113
|
+
};
|
|
114
|
+
export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends ParameterizedObject, TActorMap extends ActorMap> {
|
|
115
|
+
'@@xstate/typegen': TTypesMeta['@@xstate/typegen'];
|
|
116
|
+
resolved: {
|
|
117
|
+
enabled: TTypesMeta & {
|
|
118
|
+
indexedActions: IndexByType<TAction>;
|
|
119
|
+
indexedEvents: MergeWithInternalEvents<IndexByType<(string extends TEvent['type'] ? never : TEvent) | GenerateActorEvents<TActorMap, Prop<TTypesMeta, 'invokeSrcNameMap'>>>, Prop<TTypesMeta, 'internalEvents'>>;
|
|
120
|
+
};
|
|
121
|
+
disabled: TypegenDisabled & AllImplementationsProvided & AllowAllEvents & {
|
|
122
|
+
indexedActions: IndexByType<TAction>;
|
|
123
|
+
indexedEvents: Record<string, TEvent> & {
|
|
124
|
+
__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__: {
|
|
125
|
+
data: any;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
|
|
129
|
+
};
|
|
130
|
+
}[IsNever<TTypesMeta> extends true ? 'disabled' : TTypesMeta extends TypegenEnabled ? 'enabled' : 'disabled'];
|
|
131
|
+
}
|
|
132
|
+
export {};
|