xstate 4.31.0 → 5.0.0-alpha.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 +526 -0
- package/actions/ExecutableAction.ts +58 -0
- package/actions/dist/xstate-actions.cjs.d.ts +1 -0
- package/actions/dist/xstate-actions.cjs.dev.js +32 -0
- package/actions/dist/xstate-actions.cjs.js +7 -0
- package/actions/dist/xstate-actions.cjs.prod.js +32 -0
- package/actions/dist/xstate-actions.esm.js +2 -0
- package/actions/dynamicAction.ts +34 -0
- package/actions/package.json +4 -0
- package/actors/dist/xstate-actors.cjs.d.ts +1 -0
- package/actors/dist/xstate-actors.cjs.dev.js +21 -0
- package/actors/dist/xstate-actors.cjs.js +7 -0
- package/actors/dist/xstate-actors.cjs.prod.js +21 -0
- package/actors/dist/xstate-actors.esm.js +2 -0
- package/actors/package.json +4 -0
- package/dev/dist/xstate-dev.cjs.d.ts +1 -0
- package/dev/dist/xstate-dev.cjs.dev.js +11 -0
- package/dev/dist/xstate-dev.cjs.js +7 -0
- package/{lib/devTools.js → dev/dist/xstate-dev.cjs.prod.js} +17 -10
- package/dev/dist/xstate-dev.esm.js +1 -0
- package/dev/package.json +4 -0
- package/dist/Machine-9ce74c11.cjs.dev.js +755 -0
- package/dist/Machine-dca041dc.cjs.prod.js +749 -0
- package/dist/Machine-fb2f47f5.esm.js +751 -0
- package/dist/actions-6b86876d.cjs.dev.js +4815 -0
- package/dist/actions-70094c93.cjs.prod.js +4765 -0
- package/dist/actions-ff512f16.esm.js +4757 -0
- package/dist/declarations/actions/ExecutableAction.d.ts +23 -0
- package/dist/declarations/actions/dynamicAction.d.ts +3 -0
- package/dist/declarations/src/Machine.d.ts +4 -0
- package/dist/declarations/src/Mailbox.d.ts +12 -0
- package/dist/declarations/src/ObservableActorRef.d.ts +25 -0
- package/{lib → dist/declarations/src}/SimulatedClock.d.ts +0 -1
- package/dist/declarations/src/State.d.ts +104 -0
- package/dist/declarations/src/StateMachine.d.ts +112 -0
- package/dist/declarations/src/StateNode.d.ts +127 -0
- package/{es → dist/declarations/src}/actionTypes.d.ts +0 -3
- package/dist/declarations/src/actions/assign.d.ts +7 -0
- package/dist/declarations/src/actions/cancel.d.ts +10 -0
- package/dist/declarations/src/actions/choose.d.ts +3 -0
- package/dist/declarations/src/actions/invoke.d.ts +3 -0
- package/dist/declarations/src/actions/log.d.ts +11 -0
- package/dist/declarations/src/actions/pure.d.ts +3 -0
- package/dist/declarations/src/actions/raise.d.ts +9 -0
- package/dist/declarations/src/actions/send.d.ts +55 -0
- package/dist/declarations/src/actions/stop.d.ts +8 -0
- package/dist/declarations/src/actions.d.ts +44 -0
- package/dist/declarations/src/actors.d.ts +38 -0
- package/dist/declarations/src/constants.d.ts +5 -0
- package/{lib/devTools.d.ts → dist/declarations/src/dev/index.d.ts} +2 -2
- package/{es → dist/declarations/src}/environment.d.ts +0 -1
- package/dist/declarations/src/guards.d.ts +9 -0
- package/dist/declarations/src/index.d.ts +47 -0
- package/dist/declarations/src/interpreter.d.ts +147 -0
- package/{es → dist/declarations/src}/mapState.d.ts +0 -1
- package/dist/declarations/src/match.d.ts +5 -0
- package/dist/declarations/src/memo.d.ts +1 -0
- package/dist/declarations/src/model.d.ts +5 -0
- package/{lib → dist/declarations/src}/model.types.d.ts +10 -9
- package/dist/declarations/src/registry.d.ts +8 -0
- package/{es → dist/declarations/src}/schema.d.ts +0 -1
- package/dist/declarations/src/spawn.d.ts +2 -0
- package/dist/declarations/src/stateUtils.d.ts +85 -0
- package/{lib → dist/declarations/src}/typegenTypes.d.ts +28 -26
- package/dist/declarations/src/types.d.ts +1026 -0
- package/dist/declarations/src/utils.d.ts +56 -0
- package/{es/devTools.js → dist/index-20b364c4.esm.js} +18 -6
- package/dist/index-2a564d03.cjs.dev.js +64 -0
- package/dist/xstate.cjs.d.ts +1 -0
- package/dist/xstate.cjs.dev.js +217 -0
- package/dist/xstate.cjs.js +7 -0
- package/dist/xstate.cjs.prod.js +217 -0
- package/dist/xstate.esm.js +172 -0
- package/guards/dist/xstate-guards.cjs.d.ts +1 -0
- package/guards/dist/xstate-guards.cjs.dev.js +15 -0
- package/guards/dist/xstate-guards.cjs.js +7 -0
- package/guards/dist/xstate-guards.cjs.prod.js +15 -0
- package/guards/dist/xstate-guards.esm.js +2 -0
- package/guards/package.json +4 -0
- package/invoke/package.json +4 -0
- package/model/dist/xstate-model.cjs.d.ts +1 -0
- package/model/dist/xstate-model.cjs.dev.js +41 -0
- package/model/dist/xstate-model.cjs.js +7 -0
- package/model/dist/xstate-model.cjs.prod.js +41 -0
- package/model/dist/xstate-model.esm.js +37 -0
- package/model/package.json +4 -0
- package/package.json +21 -30
- package/dist/xstate.interpreter.js +0 -15
- package/dist/xstate.js +0 -15
- package/dist/xstate.web.js +0 -15
- package/es/Actor.d.ts +0 -25
- package/es/Actor.js +0 -99
- package/es/Machine.d.ts +0 -12
- package/es/Machine.js +0 -14
- package/es/SimulatedClock.d.ts +0 -17
- package/es/SimulatedClock.js +0 -81
- package/es/State.d.ts +0 -123
- package/es/State.js +0 -274
- package/es/StateNode.d.ts +0 -287
- package/es/StateNode.js +0 -1566
- package/es/_virtual/_tslib.js +0 -78
- package/es/actionTypes.js +0 -22
- package/es/actions.d.ts +0 -154
- package/es/actions.js +0 -520
- package/es/behaviors.d.ts +0 -37
- package/es/behaviors.js +0 -131
- package/es/constants.d.ts +0 -6
- package/es/constants.js +0 -6
- package/es/devTools.d.ts +0 -14
- package/es/each.d.ts +0 -4
- package/es/each.js +0 -13
- package/es/environment.js +0 -3
- package/es/index.d.ts +0 -22
- package/es/index.js +0 -23
- package/es/interpreter.d.ts +0 -209
- package/es/interpreter.js +0 -1402
- package/es/invoke.d.ts +0 -11
- package/es/invokeUtils.d.ts +0 -7
- package/es/invokeUtils.js +0 -40
- package/es/json.d.ts +0 -31
- package/es/json.js +0 -86
- package/es/mapState.js +0 -32
- package/es/match.d.ts +0 -9
- package/es/match.js +0 -34
- package/es/model.d.ts +0 -5
- package/es/model.js +0 -50
- package/es/model.types.d.ts +0 -52
- package/es/patterns.d.ts +0 -14
- package/es/patterns.js +0 -48
- package/es/registry.d.ts +0 -9
- package/es/registry.js +0 -19
- package/es/scheduler.d.ts +0 -17
- package/es/scheduler.js +0 -79
- package/es/schema.js +0 -6
- package/es/scxml.d.ts +0 -6
- package/es/serviceScope.d.ts +0 -4
- package/es/serviceScope.js +0 -16
- package/es/stateUtils.d.ts +0 -17
- package/es/stateUtils.js +0 -259
- package/es/typegenTypes.d.ts +0 -130
- package/es/types.d.ts +0 -1037
- package/es/types.js +0 -33
- package/es/utils.d.ts +0 -72
- package/es/utils.js +0 -626
- package/es/waitFor.d.ts +0 -32
- package/es/waitFor.js +0 -66
- package/lib/Actor.d.ts +0 -25
- package/lib/Actor.js +0 -108
- package/lib/Machine.d.ts +0 -12
- package/lib/Machine.js +0 -19
- package/lib/SimulatedClock.js +0 -85
- package/lib/State.d.ts +0 -123
- package/lib/State.js +0 -282
- package/lib/StateNode.d.ts +0 -287
- package/lib/StateNode.js +0 -1570
- package/lib/_virtual/_tslib.js +0 -85
- package/lib/actionTypes.d.ts +0 -20
- package/lib/actionTypes.js +0 -43
- package/lib/actions.d.ts +0 -154
- package/lib/actions.js +0 -552
- package/lib/behaviors.d.ts +0 -37
- package/lib/behaviors.js +0 -137
- package/lib/constants.d.ts +0 -6
- package/lib/constants.js +0 -13
- package/lib/each.d.ts +0 -4
- package/lib/each.js +0 -17
- package/lib/environment.d.ts +0 -2
- package/lib/environment.js +0 -7
- package/lib/index.d.ts +0 -22
- package/lib/index.js +0 -60
- package/lib/interpreter.d.ts +0 -209
- package/lib/interpreter.js +0 -1408
- package/lib/invoke.d.ts +0 -11
- package/lib/invoke.js +0 -20
- package/lib/invokeUtils.d.ts +0 -7
- package/lib/invokeUtils.js +0 -45
- package/lib/json.d.ts +0 -31
- package/lib/json.js +0 -94
- package/lib/mapState.d.ts +0 -4
- package/lib/mapState.js +0 -36
- package/lib/match.d.ts +0 -9
- package/lib/match.js +0 -38
- package/lib/model.d.ts +0 -5
- package/lib/model.js +0 -54
- package/lib/model.types.js +0 -2
- package/lib/patterns.d.ts +0 -14
- package/lib/patterns.js +0 -53
- package/lib/registry.d.ts +0 -9
- package/lib/registry.js +0 -23
- package/lib/scheduler.d.ts +0 -17
- package/lib/scheduler.js +0 -83
- package/lib/schema.d.ts +0 -3
- package/lib/schema.js +0 -11
- package/lib/scxml.d.ts +0 -6
- package/lib/scxml.js +0 -350
- package/lib/serviceScope.d.ts +0 -4
- package/lib/serviceScope.js +0 -21
- package/lib/stateUtils.d.ts +0 -17
- package/lib/stateUtils.js +0 -273
- package/lib/typegenTypes.js +0 -2
- package/lib/types.d.ts +0 -1037
- package/lib/types.js +0 -35
- package/lib/utils.d.ts +0 -72
- package/lib/utils.js +0 -673
- package/lib/waitFor.d.ts +0 -32
- package/lib/waitFor.js +0 -70
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { InvokeCallback, Subscribable, InterpreterOptions, Lazy, Behavior, ActorContext, EventObject, ActorRef, AnyStateMachine, BaseActorRef, EventFrom, StateFrom } from './types';
|
|
2
|
+
import { AreAllImplementationsAssumedToBeProvided } from './typegenTypes';
|
|
3
|
+
/**
|
|
4
|
+
* Returns an actor behavior from a reducer and its initial state.
|
|
5
|
+
*
|
|
6
|
+
* @param transition The pure reducer that returns the next state given the current state and event.
|
|
7
|
+
* @param initialState The initial state of the reducer.
|
|
8
|
+
* @returns An actor behavior
|
|
9
|
+
*/
|
|
10
|
+
export declare function fromReducer<TState, TEvent extends EventObject>(transition: (state: TState, event: TEvent, actorContext: ActorContext<TEvent, TState>) => TState, initialState: TState): Behavior<TEvent, TState>;
|
|
11
|
+
export declare const startSignalType: unique symbol;
|
|
12
|
+
export declare const stopSignalType: unique symbol;
|
|
13
|
+
export declare const startSignal: StartSignal;
|
|
14
|
+
export declare const stopSignal: StopSignal;
|
|
15
|
+
export interface StartSignal {
|
|
16
|
+
type: typeof startSignalType;
|
|
17
|
+
}
|
|
18
|
+
export interface StopSignal {
|
|
19
|
+
type: typeof stopSignalType;
|
|
20
|
+
}
|
|
21
|
+
export declare type LifecycleSignal = StartSignal | StopSignal;
|
|
22
|
+
export declare function fromCallback<TEvent extends EventObject>(invokeCallback: InvokeCallback): Behavior<TEvent, undefined>;
|
|
23
|
+
export declare function fromPromise<T>(lazyPromise: Lazy<PromiseLike<T>>): Behavior<{
|
|
24
|
+
type: string;
|
|
25
|
+
}, T | undefined>;
|
|
26
|
+
export declare function fromObservable<T, TEvent extends EventObject>(lazyObservable: Lazy<Subscribable<T>>): Behavior<TEvent, T | undefined>;
|
|
27
|
+
/**
|
|
28
|
+
* Creates an event observable behavior that listens to an observable
|
|
29
|
+
* that delivers event objects.
|
|
30
|
+
*
|
|
31
|
+
*
|
|
32
|
+
* @param lazyObservable A function that creates an observable
|
|
33
|
+
* @returns An event observable behavior
|
|
34
|
+
*/
|
|
35
|
+
export declare function fromEventObservable<T extends EventObject>(lazyObservable: Lazy<Subscribable<T>>): Behavior<EventObject, T | undefined>;
|
|
36
|
+
export declare function fromMachine<TMachine extends AnyStateMachine>(machine: AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends true ? TMachine : 'Some implementations missing', options?: Partial<InterpreterOptions>): Behavior<EventFrom<TMachine>, StateFrom<TMachine>>;
|
|
37
|
+
export declare function isActorRef(item: any): item is ActorRef<any>;
|
|
38
|
+
export declare function toActorRef<TEvent extends EventObject, TSnapshot = any, TActorRefLike extends BaseActorRef<TEvent> = BaseActorRef<TEvent>>(actorRefLike: TActorRefLike): ActorRef<TEvent, TSnapshot> & Omit<TActorRefLike, keyof ActorRef<any, any>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyInterpreter } from '
|
|
1
|
+
import { AnyInterpreter, DevToolsAdapter } from '../types';
|
|
2
2
|
declare type ServiceListener = (service: AnyInterpreter) => void;
|
|
3
3
|
export interface XStateDevInterface {
|
|
4
4
|
register: (service: AnyInterpreter) => void;
|
|
@@ -10,5 +10,5 @@ export interface XStateDevInterface {
|
|
|
10
10
|
}
|
|
11
11
|
export declare function getGlobal(): typeof globalThis | undefined;
|
|
12
12
|
export declare function registerService(service: AnyInterpreter): void;
|
|
13
|
+
export declare const devToolsAdapter: DevToolsAdapter;
|
|
13
14
|
export {};
|
|
14
|
-
//# sourceMappingURL=devTools.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { EventObject, StateValue, BooleanGuardDefinition, GuardConfig, GuardDefinition, SCXML, GuardPredicate, MachineContext } from './types';
|
|
2
|
+
import type { State } from './State';
|
|
3
|
+
import type { StateMachine } from './StateMachine';
|
|
4
|
+
export declare function stateIn<TContext extends MachineContext, TEvent extends EventObject>(stateValue: StateValue): GuardDefinition<TContext, TEvent>;
|
|
5
|
+
export declare function not<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardConfig<TContext, TEvent>): BooleanGuardDefinition<TContext, TEvent>;
|
|
6
|
+
export declare function and<TContext extends MachineContext, TEvent extends EventObject>(guards: Array<GuardConfig<TContext, TEvent>>): BooleanGuardDefinition<TContext, TEvent>;
|
|
7
|
+
export declare function or<TContext extends MachineContext, TEvent extends EventObject>(guards: Array<GuardConfig<TContext, TEvent>>): BooleanGuardDefinition<TContext, TEvent>;
|
|
8
|
+
export declare function evaluateGuard<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardDefinition<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>, machine: StateMachine<TContext, TEvent>): boolean;
|
|
9
|
+
export declare function toGuardDefinition<TContext extends MachineContext, TEvent extends EventObject>(guardConfig: GuardConfig<TContext, TEvent>, getPredicate?: (guardType: string) => GuardPredicate<TContext, TEvent>): GuardDefinition<TContext, TEvent>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { after, done, doneInvoke, escalate, forwardTo, respond, sendParent, sendTo, sendUpdate } from './actions';
|
|
2
|
+
import { assign } from './actions/assign';
|
|
3
|
+
import { cancel } from './actions/cancel';
|
|
4
|
+
import { choose } from './actions/choose';
|
|
5
|
+
import { log } from './actions/log';
|
|
6
|
+
import { pure } from './actions/pure';
|
|
7
|
+
import { raise } from './actions/raise';
|
|
8
|
+
import { send } from './actions/send';
|
|
9
|
+
import { stop } from './actions/stop';
|
|
10
|
+
import { interpret, Interpreter, InterpreterStatus } from './interpreter';
|
|
11
|
+
import { createMachine } from './Machine';
|
|
12
|
+
import { mapState } from './mapState';
|
|
13
|
+
import { matchState } from './match';
|
|
14
|
+
import { State } from './State';
|
|
15
|
+
import { StateNode } from './StateNode';
|
|
16
|
+
export { createSchema, t } from './schema';
|
|
17
|
+
export { SimulatedClock } from './SimulatedClock';
|
|
18
|
+
export { StateMachine } from './StateMachine';
|
|
19
|
+
export { getStateNodes } from './stateUtils';
|
|
20
|
+
export { ObservableActorRef } from './ObservableActorRef';
|
|
21
|
+
export * from './typegenTypes';
|
|
22
|
+
export * from './types';
|
|
23
|
+
export { matchesState, pathToStateValue, toEventObject, toObserver, toSCXMLEvent } from './utils';
|
|
24
|
+
export { StateNode, State, mapState, actions, assign, send, sendParent, sendUpdate, forwardTo, interpret, Interpreter, InterpreterStatus, matchState, doneInvoke, createMachine };
|
|
25
|
+
declare const actions: {
|
|
26
|
+
raise: typeof raise;
|
|
27
|
+
send: typeof send;
|
|
28
|
+
sendParent: typeof sendParent;
|
|
29
|
+
sendTo: typeof sendTo;
|
|
30
|
+
sendUpdate: typeof sendUpdate;
|
|
31
|
+
log: typeof log;
|
|
32
|
+
cancel: typeof cancel;
|
|
33
|
+
stop: typeof stop;
|
|
34
|
+
assign: typeof assign;
|
|
35
|
+
after: typeof after;
|
|
36
|
+
done: typeof done;
|
|
37
|
+
respond: typeof respond;
|
|
38
|
+
forwardTo: typeof forwardTo;
|
|
39
|
+
escalate: typeof escalate;
|
|
40
|
+
choose: typeof choose;
|
|
41
|
+
pure: typeof pure;
|
|
42
|
+
};
|
|
43
|
+
declare global {
|
|
44
|
+
interface SymbolConstructor {
|
|
45
|
+
readonly observable: symbol;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { AnyStateMachine, InterpreterFrom } from '.';
|
|
2
|
+
import { State } from './State';
|
|
3
|
+
import type { StateMachine } from './StateMachine';
|
|
4
|
+
import { TypegenDisabled, AreAllImplementationsAssumedToBeProvided } from './typegenTypes';
|
|
5
|
+
import type { MachineContext, PayloadSender } from './types';
|
|
6
|
+
import { ActorRef, DoneEvent, Event, EventObject, InteropSubscribable, InterpreterOptions, Observer, SCXML, StateValue, Subscription } from './types';
|
|
7
|
+
import { symbolObservable } from './utils';
|
|
8
|
+
export declare type StateListener<TContext extends MachineContext, TEvent extends EventObject, TResolvedTypesMeta = TypegenDisabled> = (state: State<TContext, TEvent, TResolvedTypesMeta>, event: TEvent) => void;
|
|
9
|
+
export declare type EventListener<TEvent extends EventObject = EventObject> = (event: TEvent) => void;
|
|
10
|
+
export declare type Listener = () => void;
|
|
11
|
+
export declare type ErrorListener = (error: any) => void;
|
|
12
|
+
export interface Clock {
|
|
13
|
+
setTimeout(fn: (...args: any[]) => void, timeout: number): any;
|
|
14
|
+
clearTimeout(id: any): void;
|
|
15
|
+
}
|
|
16
|
+
export declare enum InterpreterStatus {
|
|
17
|
+
NotStarted = 0,
|
|
18
|
+
Running = 1,
|
|
19
|
+
Stopped = 2
|
|
20
|
+
}
|
|
21
|
+
export declare class Interpreter<TContext extends MachineContext, TEvent extends EventObject = EventObject, TResolvedTypesMeta = TypegenDisabled> implements ActorRef<TEvent, State<TContext, TEvent, TResolvedTypesMeta>> {
|
|
22
|
+
machine: StateMachine<TContext, TEvent, any, any, TResolvedTypesMeta>;
|
|
23
|
+
/**
|
|
24
|
+
* The current state of the interpreted machine.
|
|
25
|
+
*/
|
|
26
|
+
private _state?;
|
|
27
|
+
private _initialState?;
|
|
28
|
+
/**
|
|
29
|
+
* The clock that is responsible for setting and clearing timeouts, such as delayed events and transitions.
|
|
30
|
+
*/
|
|
31
|
+
clock: Clock;
|
|
32
|
+
options: Readonly<InterpreterOptions>;
|
|
33
|
+
id: string;
|
|
34
|
+
private mailbox;
|
|
35
|
+
private delayedEventsMap;
|
|
36
|
+
private listeners;
|
|
37
|
+
private stopListeners;
|
|
38
|
+
private errorListeners;
|
|
39
|
+
private doneListeners;
|
|
40
|
+
private logger;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the service is started.
|
|
43
|
+
*/
|
|
44
|
+
status: InterpreterStatus;
|
|
45
|
+
_parent?: ActorRef<any>;
|
|
46
|
+
name: string;
|
|
47
|
+
ref: ActorRef<TEvent>;
|
|
48
|
+
/**
|
|
49
|
+
* The globally unique process ID for this invocation.
|
|
50
|
+
*/
|
|
51
|
+
sessionId: string;
|
|
52
|
+
private forwardTo;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new Interpreter instance (i.e., service) for the given machine with the provided options, if any.
|
|
55
|
+
*
|
|
56
|
+
* @param machine The machine to be interpreted
|
|
57
|
+
* @param options Interpreter options
|
|
58
|
+
*/
|
|
59
|
+
constructor(machine: StateMachine<TContext, TEvent, any, any, TResolvedTypesMeta>, options?: InterpreterOptions);
|
|
60
|
+
get initialized(): boolean;
|
|
61
|
+
get initialState(): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
62
|
+
get state(): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
63
|
+
/**
|
|
64
|
+
* Executes the actions of the given state, with that state's `context` and `event`.
|
|
65
|
+
*
|
|
66
|
+
* @param state The state whose actions will be executed
|
|
67
|
+
*/
|
|
68
|
+
execute(state: State<TContext, TEvent, TResolvedTypesMeta>): void;
|
|
69
|
+
private update;
|
|
70
|
+
onTransition(listener: StateListener<TContext, TEvent, TResolvedTypesMeta>): this;
|
|
71
|
+
subscribe(observer: Observer<State<TContext, TEvent, TResolvedTypesMeta>>): Subscription;
|
|
72
|
+
subscribe(nextListener?: (state: State<TContext, TEvent, TResolvedTypesMeta>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
|
|
73
|
+
/**
|
|
74
|
+
|
|
75
|
+
* Adds a listener that is notified when the machine is stopped.
|
|
76
|
+
*
|
|
77
|
+
* @param listener The listener
|
|
78
|
+
*/
|
|
79
|
+
onStop(listener: Listener): this;
|
|
80
|
+
/**
|
|
81
|
+
* Adds an error listener that is notified with an `Error` whenever an
|
|
82
|
+
* error occurs during execution.
|
|
83
|
+
*
|
|
84
|
+
* @param listener The error listener
|
|
85
|
+
*/
|
|
86
|
+
onError(listener: ErrorListener): this;
|
|
87
|
+
/**
|
|
88
|
+
* Adds a state listener that is notified when the statechart has reached its final state.
|
|
89
|
+
* @param listener The state listener
|
|
90
|
+
*/
|
|
91
|
+
onDone(listener: EventListener<DoneEvent>): this;
|
|
92
|
+
/**
|
|
93
|
+
* Removes a listener.
|
|
94
|
+
* @param listener The listener to remove
|
|
95
|
+
*/
|
|
96
|
+
off(listener: (...args: any[]) => void): this;
|
|
97
|
+
/**
|
|
98
|
+
* Starts the interpreter from the given state, or the initial state.
|
|
99
|
+
* @param initialState The state to start the statechart from
|
|
100
|
+
*/
|
|
101
|
+
start(initialState?: State<TContext, TEvent, TResolvedTypesMeta> | StateValue): this;
|
|
102
|
+
private _process;
|
|
103
|
+
/**
|
|
104
|
+
* Stops the interpreter and unsubscribe all listeners.
|
|
105
|
+
*
|
|
106
|
+
* This will also notify the `onStop` listeners.
|
|
107
|
+
*/
|
|
108
|
+
stop(): this;
|
|
109
|
+
/**
|
|
110
|
+
* Sends an event to the running interpreter to trigger a transition.
|
|
111
|
+
*
|
|
112
|
+
* An array of events (batched) can be sent as well, which will send all
|
|
113
|
+
* batched events to the running interpreter. The listeners will be
|
|
114
|
+
* notified only **once** when all events are processed.
|
|
115
|
+
*
|
|
116
|
+
* @param event The event(s) to send
|
|
117
|
+
*/
|
|
118
|
+
send: PayloadSender<TEvent>;
|
|
119
|
+
private sendTo;
|
|
120
|
+
/**
|
|
121
|
+
* Returns the next state given the interpreter's current state and the event.
|
|
122
|
+
*
|
|
123
|
+
* This is a pure method that does _not_ update the interpreter's state.
|
|
124
|
+
*
|
|
125
|
+
* @param event The event to determine the next state
|
|
126
|
+
*/
|
|
127
|
+
nextState(event: Event<TEvent> | SCXML.Event<TEvent>): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
128
|
+
private forward;
|
|
129
|
+
private defer;
|
|
130
|
+
private cancel;
|
|
131
|
+
private getActionFunction;
|
|
132
|
+
private exec;
|
|
133
|
+
private stopChild;
|
|
134
|
+
private attachDevTools;
|
|
135
|
+
toJSON(): {
|
|
136
|
+
id: string;
|
|
137
|
+
};
|
|
138
|
+
[Symbol.observable](): InteropSubscribable<State<TContext, TEvent, TResolvedTypesMeta>>;
|
|
139
|
+
getSnapshot(): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Creates a new Interpreter instance for the given machine with the provided options, if any.
|
|
143
|
+
*
|
|
144
|
+
* @param machine The machine to interpret
|
|
145
|
+
* @param options Interpreter options
|
|
146
|
+
*/
|
|
147
|
+
export declare function interpret<TMachine extends AnyStateMachine>(machine: AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends true ? TMachine : 'Some implementations missing', options?: InterpreterOptions): InterpreterFrom<TMachine>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { State } from './State';
|
|
2
|
+
import { StateValue, EventObject, MachineContext } from './types';
|
|
3
|
+
export declare type ValueFromStateGetter<T, TContext extends MachineContext, TEvent extends EventObject> = (state: State<TContext, TEvent>) => T;
|
|
4
|
+
export declare type StatePatternTuple<T, TContext extends MachineContext, TEvent extends EventObject> = [StateValue, ValueFromStateGetter<T, TContext, TEvent>];
|
|
5
|
+
export declare function matchState<T, TContext extends MachineContext, TEvent extends EventObject>(state: State<TContext, TEvent> | StateValue, patterns: Array<StatePatternTuple<T, TContext, TEvent>>, defaultValue: ValueFromStateGetter<T, TContext, TEvent>): T;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function memo<T>(object: any, key: string, fn: () => T): T;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MachineContext, Cast, EventObject, BaseActionObject, Prop, IsNever } from './types';
|
|
2
|
+
import { UnionFromCreatorsReturnTypes, FinalModelCreators, Model, ModelCreators } from './model.types';
|
|
3
|
+
export declare function createModel<TContext extends MachineContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject>(initialContext: TContext): Model<TContext, TEvent, TAction, void>;
|
|
4
|
+
export declare function createModel<TContext extends MachineContext, TEvent extends EventObject>(initialContext: TContext): Model<TContext, TEvent, never>;
|
|
5
|
+
export declare function createModel<TContext extends MachineContext, 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>;
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { StateMachine } from './StateMachine';
|
|
2
2
|
import { ResolveTypegenMeta, TypegenConstraint, TypegenDisabled } from './typegenTypes';
|
|
3
|
-
|
|
3
|
+
import { ActorMap, AnyFunction, Assigner, BaseActionObject, Compute, DynamicAssignAction, EventObject, InternalMachineImplementations, MachineConfig, MachineContext, Prop, PropertyAssigner } from './types';
|
|
4
|
+
declare type SimplisticExtractEvent<TEvent extends EventObject, TEventType extends TEvent['type']> = TEvent extends {
|
|
5
|
+
type: TEventType;
|
|
6
|
+
} ? TEvent : never;
|
|
7
|
+
export interface Model<TContext extends MachineContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TModelCreators = void> {
|
|
4
8
|
initialContext: TContext;
|
|
5
|
-
assign: <TEventType extends TEvent['type'] = TEvent['type']>(assigner: Assigner<TContext,
|
|
9
|
+
assign: <TEventType extends TEvent['type'] = TEvent['type']>(assigner: Assigner<TContext, SimplisticExtractEvent<TEvent, TEventType>> | PropertyAssigner<TContext, SimplisticExtractEvent<TEvent, TEventType>>, eventType?: TEventType) => DynamicAssignAction<TContext, SimplisticExtractEvent<TEvent, TEventType>>;
|
|
6
10
|
events: Prop<TModelCreators, 'events'>;
|
|
7
11
|
actions: Prop<TModelCreators, 'actions'>;
|
|
8
|
-
reset: () =>
|
|
12
|
+
reset: () => DynamicAssignAction<TContext, any>;
|
|
9
13
|
createMachine: {
|
|
10
|
-
<
|
|
11
|
-
value: any;
|
|
12
|
-
context: TContext;
|
|
13
|
-
}, TAction, TServiceMap, ResolveTypegenMeta<TTypesMeta, TEvent, TAction, TServiceMap>>;
|
|
14
|
+
<TActorMap extends ActorMap = ActorMap, TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: MachineConfig<TContext, TEvent, TAction, TActorMap, TTypesMeta>, implementations?: InternalMachineImplementations<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction, TActorMap>>): StateMachine<TContext, TEvent, TAction, TActorMap, ResolveTypegenMeta<TTypesMeta, TEvent, TAction, TActorMap>>;
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
17
|
export declare type ModelContextFrom<TModel extends Model<any, any, any, any>> = TModel extends Model<infer TContext, any, any, any> ? TContext : never;
|
|
@@ -49,4 +50,4 @@ export interface FinalModelCreators<Self> {
|
|
|
49
50
|
export declare type UnionFromCreatorsReturnTypes<TCreators> = {
|
|
50
51
|
[K in keyof TCreators]: TCreators[K] extends AnyFunction ? ReturnType<TCreators[K]> : never;
|
|
51
52
|
}[keyof TCreators];
|
|
52
|
-
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { MachineContext, EventObject, SCXML, InvokeActionObject, AnyStateMachine, Spawner } from '.';
|
|
2
|
+
export declare function createSpawner<TContext extends MachineContext, TEvent extends EventObject>(machine: AnyStateMachine, context: TContext, _event: SCXML.Event<TEvent>, mutCapturedActions: InvokeActionObject[]): Spawner;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, DelayedTransitionDefinition, SingleOrArray, SCXML, Transitions, StateValueMap, HistoryValue, InitialTransitionConfig, InitialTransitionDefinition, Event, MachineContext } from './types';
|
|
2
|
+
import { State } from './State';
|
|
3
|
+
import { NULL_EVENT } from './constants';
|
|
4
|
+
import type { StateMachine } from './StateMachine';
|
|
5
|
+
import type { StateNode } from './StateNode';
|
|
6
|
+
import { AnyStateMachine } from '.';
|
|
7
|
+
declare type Configuration<TContext extends MachineContext, TE extends EventObject> = Iterable<StateNode<TContext, TE>>;
|
|
8
|
+
declare type AdjList<TContext extends MachineContext, TE extends EventObject> = Map<StateNode<TContext, TE>, Array<StateNode<TContext, TE>>>;
|
|
9
|
+
export declare const isAtomicStateNode: (stateNode: StateNode<any, any>) => boolean;
|
|
10
|
+
export declare function getChildren<TContext extends MachineContext, TE extends EventObject>(stateNode: StateNode<TContext, TE>): Array<StateNode<TContext, TE>>;
|
|
11
|
+
export declare function getProperAncestors<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, toStateNode: StateNode<TContext, TEvent> | null): Array<typeof stateNode>;
|
|
12
|
+
export declare function getAllStateNodes<TContext extends MachineContext, TE extends EventObject>(stateNode: StateNode<TContext, TE>): Array<StateNode<TContext, TE>>;
|
|
13
|
+
export declare function getConfiguration<TC extends MachineContext, TE extends EventObject>(stateNodes: Iterable<StateNode<TC, TE>>): Set<StateNode<TC, TE>>;
|
|
14
|
+
export declare function getAdjList<TContext extends MachineContext, TE extends EventObject>(configuration: Configuration<TContext, TE>): AdjList<TContext, TE>;
|
|
15
|
+
export declare function getStateValue<TContext extends MachineContext, TE extends EventObject>(rootNode: StateNode<TContext, TE>, configuration: Configuration<TContext, TE>): StateValue;
|
|
16
|
+
export declare function has<T>(iterable: Iterable<T>, item: T): boolean;
|
|
17
|
+
export declare function nextEvents<TContext extends MachineContext, TE extends EventObject>(configuration: Array<StateNode<TContext, TE>>): Array<TE['type']>;
|
|
18
|
+
export declare function isInFinalState<TContext extends MachineContext, TE extends EventObject>(configuration: Array<StateNode<TContext, TE>>, stateNode?: StateNode<TContext, TE>): boolean;
|
|
19
|
+
export declare const isStateId: (str: string) => boolean;
|
|
20
|
+
export declare function getCandidates<TEvent extends EventObject>(stateNode: StateNode<any, TEvent>, receivedEventType: TEvent['type'],
|
|
21
|
+
/**
|
|
22
|
+
* If `true`, will use SCXML event partial token matching semantics
|
|
23
|
+
* without the need for the ".*" suffix
|
|
24
|
+
*/
|
|
25
|
+
partialMatch?: boolean): Array<TransitionDefinition<any, TEvent>>;
|
|
26
|
+
/**
|
|
27
|
+
* All delayed transitions from the config.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getDelayedTransitions<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>): Array<DelayedTransitionDefinition<TContext, TEvent>>;
|
|
30
|
+
export declare function formatTransition<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, transitionConfig: TransitionConfig<TContext, TEvent> & {
|
|
31
|
+
event: TEvent['type'] | typeof NULL_EVENT | '*';
|
|
32
|
+
}): TransitionDefinition<TContext, TEvent>;
|
|
33
|
+
export declare function formatTransitions<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>): Array<TransitionDefinition<TContext, TEvent>>;
|
|
34
|
+
export declare function formatInitialTransition<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, _target: SingleOrArray<string> | InitialTransitionConfig<TContext, TEvent>): InitialTransitionDefinition<TContext, TEvent>;
|
|
35
|
+
export declare function resolveTarget<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, _target: Array<string | StateNode<TContext, TEvent>> | undefined): Array<StateNode<TContext, TEvent>> | undefined;
|
|
36
|
+
export declare function getInitialStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>): Array<StateNode<TContext, TEvent>>;
|
|
37
|
+
/**
|
|
38
|
+
* Returns the child state node from its relative `stateKey`, or throws.
|
|
39
|
+
*/
|
|
40
|
+
export declare function getStateNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateKey: string): StateNode<TContext, TEvent>;
|
|
41
|
+
/**
|
|
42
|
+
* Returns the state nodes represented by the current state value.
|
|
43
|
+
*
|
|
44
|
+
* @param state The state value or State instance
|
|
45
|
+
*/
|
|
46
|
+
export declare function getStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, state: StateValue | State<TContext, TEvent>): Array<StateNode<TContext, TEvent>>;
|
|
47
|
+
export declare function transitionLeafNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateValue: string, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Transitions<TContext, TEvent> | undefined;
|
|
48
|
+
export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Transitions<TContext, TEvent> | undefined;
|
|
49
|
+
export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Transitions<TContext, TEvent> | undefined;
|
|
50
|
+
export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateValue: StateValue, state: State<TContext, TEvent, any>, _event: SCXML.Event<TEvent>): Transitions<TContext, TEvent> | undefined;
|
|
51
|
+
export declare function removeConflictingTransitions<TContext extends MachineContext, TEvent extends EventObject>(enabledTransitions: Array<TransitionDefinition<TContext, TEvent>>, configuration: Set<StateNode<TContext, TEvent>>, state: State<TContext, TEvent>): Array<TransitionDefinition<TContext, TEvent>>;
|
|
52
|
+
export declare function enterStates<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, mutConfiguration: Set<StateNode<TContext, TEvent>>, state: State<TContext, TEvent>): {
|
|
53
|
+
statesToInvoke: Set<StateNode<TContext, TEvent>>;
|
|
54
|
+
internalQueue: SCXML.Event<TEvent>[];
|
|
55
|
+
actions: BaseActionObject[];
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* https://www.w3.org/TR/scxml/#microstepProcedure
|
|
59
|
+
*
|
|
60
|
+
* @private
|
|
61
|
+
* @param transitions
|
|
62
|
+
* @param currentState
|
|
63
|
+
* @param mutConfiguration
|
|
64
|
+
*/
|
|
65
|
+
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent>, context: TContext, mutConfiguration: Set<StateNode<TContext, TEvent>>, machine: StateMachine<TContext, TEvent>, _event: SCXML.Event<TEvent>): {
|
|
66
|
+
actions: BaseActionObject[];
|
|
67
|
+
configuration: typeof mutConfiguration;
|
|
68
|
+
historyValue: HistoryValue<TContext, TEvent>;
|
|
69
|
+
internalQueue: Array<SCXML.Event<TEvent>>;
|
|
70
|
+
context: TContext;
|
|
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,4 +1,4 @@
|
|
|
1
|
-
import { BaseActionObject, EventObject, IndexByType, IsNever, Prop, Values, IsAny,
|
|
1
|
+
import { BaseActionObject, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ActorMap, Cast } from './types';
|
|
2
2
|
export interface TypegenDisabled {
|
|
3
3
|
'@@xstate/typegen': false;
|
|
4
4
|
}
|
|
@@ -20,23 +20,23 @@ export interface TypegenMeta extends TypegenEnabled {
|
|
|
20
20
|
*/
|
|
21
21
|
missingImplementations: {
|
|
22
22
|
actions: string;
|
|
23
|
+
actors: string;
|
|
23
24
|
delays: string;
|
|
24
25
|
guards: string;
|
|
25
|
-
services: string;
|
|
26
26
|
};
|
|
27
27
|
/**
|
|
28
28
|
* A map for the internal events of the machine.
|
|
29
29
|
*
|
|
30
|
-
* key: 'done.invoke.
|
|
30
|
+
* key: 'done.invoke.myActor'
|
|
31
31
|
* value: {
|
|
32
|
-
* type: 'done.invoke.
|
|
32
|
+
* type: 'done.invoke.myActor';
|
|
33
33
|
* data: unknown;
|
|
34
34
|
* __tip: 'Declare the type in event types!';
|
|
35
35
|
* }
|
|
36
36
|
*/
|
|
37
37
|
internalEvents: {};
|
|
38
38
|
/**
|
|
39
|
-
* Maps the name of the
|
|
39
|
+
* Maps the name of the actor to the event type
|
|
40
40
|
* of the done.invoke action
|
|
41
41
|
*
|
|
42
42
|
* key: 'invokeSrc'
|
|
@@ -69,12 +69,12 @@ export interface TypegenMeta extends TypegenEnabled {
|
|
|
69
69
|
eventsCausingGuards: Record<string, string>;
|
|
70
70
|
/**
|
|
71
71
|
* Keeps track of which events lead to which
|
|
72
|
-
*
|
|
72
|
+
* actors.
|
|
73
73
|
*
|
|
74
74
|
* Key: 'EVENT_NAME'
|
|
75
|
-
* Value: '
|
|
75
|
+
* Value: 'actorName' | 'otherActorName'
|
|
76
76
|
*/
|
|
77
|
-
|
|
77
|
+
eventsCausingActors: Record<string, string>;
|
|
78
78
|
}
|
|
79
79
|
export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
80
80
|
resolved: TypegenMeta & {
|
|
@@ -89,42 +89,44 @@ export declare type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta,
|
|
|
89
89
|
interface AllImplementationsProvided {
|
|
90
90
|
missingImplementations: {
|
|
91
91
|
actions: never;
|
|
92
|
+
actors: never;
|
|
92
93
|
delays: never;
|
|
93
94
|
guards: never;
|
|
94
|
-
services: never;
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
97
|
export interface MarkAllImplementationsAsProvided<TResolvedTypesMeta> {
|
|
98
98
|
'@@xstate/typegen': Prop<TResolvedTypesMeta, '@@xstate/typegen'>;
|
|
99
99
|
resolved: Prop<TResolvedTypesMeta, 'resolved'> & AllImplementationsProvided;
|
|
100
100
|
}
|
|
101
|
-
declare type
|
|
101
|
+
declare type GenerateActorEvent<TActorName, TEventType, TActorMap extends ActorMap> = TEventType extends any ? {
|
|
102
102
|
type: TEventType;
|
|
103
|
-
} & Prop<
|
|
104
|
-
declare type
|
|
105
|
-
[K in keyof TInvokeSrcNameMap]:
|
|
103
|
+
} & Prop<TActorMap, TActorName> : never;
|
|
104
|
+
declare type GenerateActorEvents<TActorMap extends ActorMap, TInvokeSrcNameMap> = string extends keyof TActorMap ? never : Cast<{
|
|
105
|
+
[K in keyof TInvokeSrcNameMap]: GenerateActorEvent<K, TInvokeSrcNameMap[K], TActorMap>;
|
|
106
106
|
}[keyof TInvokeSrcNameMap], EventObject>;
|
|
107
107
|
declare type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
|
|
108
108
|
declare type AllowAllEvents = {
|
|
109
109
|
eventsCausingActions: Record<string, string>;
|
|
110
|
+
eventsCausingActors: Record<string, string>;
|
|
110
111
|
eventsCausingDelays: Record<string, string>;
|
|
111
112
|
eventsCausingGuards: Record<string, string>;
|
|
112
|
-
eventsCausingServices: Record<string, string>;
|
|
113
113
|
};
|
|
114
|
-
export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject,
|
|
114
|
+
export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject, TActorMap extends ActorMap> {
|
|
115
115
|
'@@xstate/typegen': TTypesMeta['@@xstate/typegen'];
|
|
116
|
-
resolved:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
+
};
|
|
124
127
|
};
|
|
128
|
+
invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
|
|
125
129
|
};
|
|
126
|
-
|
|
127
|
-
};
|
|
130
|
+
}[IsNever<TTypesMeta> extends true ? 'disabled' : TTypesMeta extends TypegenEnabled ? 'enabled' : 'disabled'];
|
|
128
131
|
}
|
|
129
132
|
export {};
|
|
130
|
-
//# sourceMappingURL=typegenTypes.d.ts.map
|