xstate 5.32.2 → 6.0.0-alpha.10
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 +25 -24
- package/dist/StateMachine-0aa98f54.development.esm.js +746 -0
- package/dist/StateMachine-aef700df.cjs.js +732 -0
- package/dist/StateMachine-d4931336.esm.js +729 -0
- package/dist/StateMachine-da872dde.development.cjs.js +749 -0
- package/dist/declarations/src/State.d.ts +11 -13
- package/dist/declarations/src/StateMachine.d.ts +40 -26
- package/dist/declarations/src/StateNode.d.ts +18 -54
- package/dist/declarations/src/actions.d.ts +14 -9
- package/dist/declarations/src/actors/callback.d.ts +42 -16
- package/dist/declarations/src/actors/index.d.ts +9 -6
- package/dist/declarations/src/actors/listener.d.ts +18 -0
- package/dist/declarations/src/actors/logic.d.ts +105 -0
- package/dist/declarations/src/actors/observable.d.ts +72 -27
- package/dist/declarations/src/actors/promise.d.ts +133 -48
- package/dist/declarations/src/actors/subscription.d.ts +22 -0
- package/dist/declarations/src/createActor.d.ts +33 -34
- package/dist/declarations/src/createMachine.d.ts +38 -7
- package/dist/declarations/src/createMachineFromConfig.d.ts +177 -0
- package/dist/declarations/src/graph/graph.d.ts +6 -4
- package/dist/declarations/src/graph/shortestPaths.d.ts +2 -2
- package/dist/declarations/src/graph/simplePaths.d.ts +2 -2
- package/dist/declarations/src/index.d.ts +13 -9
- package/dist/declarations/src/inspection.d.ts +84 -30
- package/dist/declarations/src/mapState.d.ts +4 -2
- package/dist/declarations/src/schema.types.d.ts +90 -0
- package/dist/declarations/src/serialize.d.ts +50 -0
- package/dist/declarations/src/setup.d.ts +396 -136
- package/dist/declarations/src/spawn.d.ts +7 -32
- package/dist/declarations/src/stateUtils.d.ts +22 -19
- package/dist/declarations/src/system.d.ts +8 -7
- package/dist/declarations/src/transition.d.ts +8 -5
- package/dist/declarations/src/transitionActions.d.ts +4 -0
- package/dist/declarations/src/types.d.ts +494 -429
- package/dist/declarations/src/types.v6.d.ts +423 -0
- package/dist/declarations/src/utils.d.ts +5 -3
- package/dist/index-219cb621.development.cjs.js +4476 -0
- package/dist/index-2f2fbd9b.development.esm.js +4421 -0
- package/dist/index-559ceab3.cjs.js +4437 -0
- package/dist/index-8828376f.esm.js +4382 -0
- package/dist/xstate-actors.cjs.js +12 -838
- package/dist/xstate-actors.cjs.mjs +10 -5
- package/dist/xstate-actors.development.cjs.js +12 -838
- package/dist/xstate-actors.development.cjs.mjs +10 -5
- package/dist/xstate-actors.development.esm.js +1 -836
- package/dist/xstate-actors.esm.js +1 -836
- package/dist/xstate-actors.umd.min.js +1 -1
- package/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/xstate-graph.cjs.js +18 -29
- package/dist/xstate-graph.development.cjs.js +18 -29
- package/dist/xstate-graph.development.esm.js +15 -26
- package/dist/xstate-graph.esm.js +15 -26
- package/dist/xstate-graph.umd.min.js +1 -1
- package/dist/xstate-graph.umd.min.js.map +1 -1
- package/dist/xstate.cjs.js +1477 -122
- package/dist/xstate.cjs.mjs +19 -22
- package/dist/xstate.development.cjs.js +1477 -122
- package/dist/xstate.development.cjs.mjs +19 -22
- package/dist/xstate.development.esm.js +1442 -86
- package/dist/xstate.esm.js +1442 -86
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/package.json +3 -47
- package/dist/StateMachine-23c204bb.development.esm.js +0 -566
- package/dist/StateMachine-67a0f463.development.cjs.js +0 -569
- package/dist/StateMachine-94d215e3.cjs.js +0 -563
- package/dist/StateMachine-d1d80308.esm.js +0 -560
- package/dist/assign-43b1b558.development.esm.js +0 -133
- package/dist/assign-54b312bc.esm.js +0 -127
- package/dist/assign-b5bc78f7.cjs.js +0 -129
- package/dist/assign-f8f66278.development.cjs.js +0 -135
- package/dist/declarations/src/actions/assign.d.ts +0 -45
- package/dist/declarations/src/actions/cancel.d.ts +0 -39
- package/dist/declarations/src/actions/emit.d.ts +0 -44
- package/dist/declarations/src/actions/enqueueActions.d.ts +0 -57
- package/dist/declarations/src/actions/log.d.ts +0 -16
- package/dist/declarations/src/actions/raise.d.ts +0 -21
- package/dist/declarations/src/actions/send.d.ts +0 -42
- package/dist/declarations/src/actions/spawnChild.d.ts +0 -34
- package/dist/declarations/src/actions/stopChild.d.ts +0 -19
- package/dist/declarations/src/actors/transition.d.ts +0 -143
- package/dist/declarations/src/dev/index.d.ts +0 -14
- package/dist/declarations/src/guards.d.ts +0 -128
- package/dist/log-9b02c355.esm.js +0 -401
- package/dist/log-c94995c7.cjs.js +0 -409
- package/dist/log-d9f3f459.development.cjs.js +0 -437
- package/dist/log-db444cad.development.esm.js +0 -429
- package/dist/raise-235108c6.esm.js +0 -2762
- package/dist/raise-45f11c00.development.esm.js +0 -2824
- package/dist/raise-c445379d.cjs.js +0 -2817
- package/dist/raise-eca73993.development.cjs.js +0 -2879
- package/dist/xstate-actions.cjs.d.mts +0 -2
- package/dist/xstate-actions.cjs.d.ts +0 -2
- package/dist/xstate-actions.cjs.js +0 -23
- package/dist/xstate-actions.cjs.mjs +0 -14
- package/dist/xstate-actions.development.cjs.js +0 -23
- package/dist/xstate-actions.development.cjs.mjs +0 -14
- package/dist/xstate-actions.development.esm.js +0 -4
- package/dist/xstate-actions.esm.js +0 -4
- package/dist/xstate-actions.umd.min.js +0 -2
- package/dist/xstate-actions.umd.min.js.map +0 -1
- package/dist/xstate-dev.cjs.d.mts +0 -2
- package/dist/xstate-dev.cjs.d.ts +0 -2
- package/dist/xstate-dev.cjs.js +0 -48
- package/dist/xstate-dev.cjs.mjs +0 -5
- package/dist/xstate-dev.development.cjs.js +0 -51
- package/dist/xstate-dev.development.cjs.mjs +0 -5
- package/dist/xstate-dev.development.esm.js +0 -45
- package/dist/xstate-dev.esm.js +0 -42
- package/dist/xstate-dev.umd.min.js +0 -2
- package/dist/xstate-dev.umd.min.js.map +0 -1
- package/dist/xstate-guards.cjs.d.mts +0 -2
- package/dist/xstate-guards.cjs.d.ts +0 -2
- package/dist/xstate-guards.cjs.js +0 -14
- package/dist/xstate-guards.cjs.mjs +0 -7
- package/dist/xstate-guards.development.cjs.js +0 -14
- package/dist/xstate-guards.development.cjs.mjs +0 -7
- package/dist/xstate-guards.development.esm.js +0 -2
- package/dist/xstate-guards.esm.js +0 -2
- package/dist/xstate-guards.umd.min.js +0 -2
- package/dist/xstate-guards.umd.min.js.map +0 -1
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ActionArgs, ActionFunction, AnyActorLogic, ConditionalRequired, EventObject, InputFrom, IsLiteralString, IsNotNever, MachineContext, Mapper, ParameterizedObject, ProvidedActor, RequiredActorOptions, UnifiedArg } from "../types.js";
|
|
2
|
-
type ResolvableActorId<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TId extends string | undefined> = TId | ((args: UnifiedArg<TContext, TExpressionEvent, TEvent>) => TId);
|
|
3
|
-
export interface SpawnAction<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TEvent extends EventObject, TActor extends ProvidedActor> {
|
|
4
|
-
(args: ActionArgs<TContext, TExpressionEvent, TEvent>, params: TParams): void;
|
|
5
|
-
_out_TActor?: TActor;
|
|
6
|
-
}
|
|
7
|
-
export interface SpawnActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> {
|
|
8
|
-
id?: ResolvableActorId<TContext, TExpressionEvent, TEvent, TActor['id']>;
|
|
9
|
-
systemId?: string;
|
|
10
|
-
input?: Mapper<TContext, TEvent, InputFrom<TActor['logic']>, TEvent> | InputFrom<TActor['logic']>;
|
|
11
|
-
syncSnapshot?: boolean;
|
|
12
|
-
}
|
|
13
|
-
type DistributeActors<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> = (TActor extends any ? ConditionalRequired<[
|
|
14
|
-
src: TActor['src'],
|
|
15
|
-
options?: SpawnActionOptions<TContext, TExpressionEvent, TEvent, TActor> & {
|
|
16
|
-
[K in RequiredActorOptions<TActor>]: unknown;
|
|
17
|
-
}
|
|
18
|
-
], IsNotNever<RequiredActorOptions<TActor>>> : never) | [
|
|
19
|
-
src: AnyActorLogic,
|
|
20
|
-
options?: SpawnActionOptions<TContext, TExpressionEvent, TEvent, ProvidedActor> & {
|
|
21
|
-
id?: never;
|
|
22
|
-
}
|
|
23
|
-
];
|
|
24
|
-
type SpawnArguments<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TExpressionEvent, TEvent, TActor> : [
|
|
25
|
-
src: string | AnyActorLogic,
|
|
26
|
-
options?: {
|
|
27
|
-
id?: ResolvableActorId<TContext, TExpressionEvent, TEvent, string>;
|
|
28
|
-
systemId?: string;
|
|
29
|
-
input?: unknown;
|
|
30
|
-
syncSnapshot?: boolean;
|
|
31
|
-
}
|
|
32
|
-
];
|
|
33
|
-
export declare function spawnChild<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TEvent extends EventObject, TActor extends ProvidedActor>(...[src, { id, systemId, input, syncSnapshot }]: SpawnArguments<TContext, TExpressionEvent, TEvent, TActor>): ActionFunction<TContext, TExpressionEvent, TEvent, TParams, TActor, never, never, never, never>;
|
|
34
|
-
export {};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ActionArgs, AnyActorRef, EventObject, MachineContext, ParameterizedObject } from "../types.js";
|
|
2
|
-
type ResolvableActorRef<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TEvent extends EventObject> = string | AnyActorRef | ((args: ActionArgs<TContext, TExpressionEvent, TEvent>, params: TParams) => AnyActorRef | string);
|
|
3
|
-
export interface StopAction<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TEvent extends EventObject> {
|
|
4
|
-
(args: ActionArgs<TContext, TExpressionEvent, TEvent>, params: TParams): void;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Stops a child actor.
|
|
8
|
-
*
|
|
9
|
-
* @param actorRef The actor to stop.
|
|
10
|
-
*/
|
|
11
|
-
export declare function stopChild<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TEvent extends EventObject>(actorRef: ResolvableActorRef<TContext, TExpressionEvent, TParams, TEvent>): StopAction<TContext, TExpressionEvent, TParams, TEvent>;
|
|
12
|
-
/**
|
|
13
|
-
* Stops a child actor.
|
|
14
|
-
*
|
|
15
|
-
* @deprecated Use `stopChild(...)` instead
|
|
16
|
-
* @alias
|
|
17
|
-
*/
|
|
18
|
-
export declare const stop: typeof stopChild;
|
|
19
|
-
export {};
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { AnyActorSystem } from "../system.js";
|
|
2
|
-
import { ActorLogic, ActorRefFromLogic, ActorScope, EventObject, NonReducibleUnknown, Snapshot } from "../types.js";
|
|
3
|
-
export type TransitionSnapshot<TContext> = Snapshot<undefined> & {
|
|
4
|
-
context: TContext;
|
|
5
|
-
};
|
|
6
|
-
export type TransitionActorLogic<TContext, TEvent extends EventObject, TInput extends NonReducibleUnknown, TEmitted extends EventObject = EventObject> = ActorLogic<TransitionSnapshot<TContext>, TEvent, TInput, AnyActorSystem, TEmitted>;
|
|
7
|
-
/**
|
|
8
|
-
* Represents an actor created by `fromTransition`.
|
|
9
|
-
*
|
|
10
|
-
* The type of `self` within the actor's logic.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
*
|
|
14
|
-
* ```ts
|
|
15
|
-
* import {
|
|
16
|
-
* fromTransition,
|
|
17
|
-
* createActor,
|
|
18
|
-
* type AnyActorSystem
|
|
19
|
-
* } from 'xstate';
|
|
20
|
-
*
|
|
21
|
-
* //* The actor's stored context.
|
|
22
|
-
* type Context = {
|
|
23
|
-
* // The current count.
|
|
24
|
-
* count: number;
|
|
25
|
-
* // The amount to increase `count` by.
|
|
26
|
-
* step: number;
|
|
27
|
-
* };
|
|
28
|
-
* // The events the actor receives.
|
|
29
|
-
* type Event = { type: 'increment' };
|
|
30
|
-
* // The actor's input.
|
|
31
|
-
* type Input = { step?: number };
|
|
32
|
-
*
|
|
33
|
-
* // Actor logic that increments `count` by `step` when it receives an event of
|
|
34
|
-
* // type `increment`.
|
|
35
|
-
* const logic = fromTransition<Context, Event, AnyActorSystem, Input>(
|
|
36
|
-
* (state, event, actorScope) => {
|
|
37
|
-
* actorScope.self;
|
|
38
|
-
* // ^? TransitionActorRef<Context, Event>
|
|
39
|
-
*
|
|
40
|
-
* if (event.type === 'increment') {
|
|
41
|
-
* return {
|
|
42
|
-
* ...state,
|
|
43
|
-
* count: state.count + state.step
|
|
44
|
-
* };
|
|
45
|
-
* }
|
|
46
|
-
* return state;
|
|
47
|
-
* },
|
|
48
|
-
* ({ input, self }) => {
|
|
49
|
-
* self;
|
|
50
|
-
* // ^? TransitionActorRef<Context, Event>
|
|
51
|
-
*
|
|
52
|
-
* return {
|
|
53
|
-
* count: 0,
|
|
54
|
-
* step: input.step ?? 1
|
|
55
|
-
* };
|
|
56
|
-
* }
|
|
57
|
-
* );
|
|
58
|
-
*
|
|
59
|
-
* const actor = createActor(logic, { input: { step: 10 } });
|
|
60
|
-
* // ^? TransitionActorRef<Context, Event>
|
|
61
|
-
* ```
|
|
62
|
-
*
|
|
63
|
-
* @see {@link fromTransition}
|
|
64
|
-
*/
|
|
65
|
-
export type TransitionActorRef<TContext, TEvent extends EventObject> = ActorRefFromLogic<TransitionActorLogic<TransitionSnapshot<TContext>, TEvent, unknown>>;
|
|
66
|
-
/**
|
|
67
|
-
* Returns actor logic given a transition function and its initial state.
|
|
68
|
-
*
|
|
69
|
-
* A “transition function” is a function that takes the current `state` and
|
|
70
|
-
* received `event` object as arguments, and returns the next state, similar to
|
|
71
|
-
* a reducer.
|
|
72
|
-
*
|
|
73
|
-
* Actors created from transition logic (“transition actors”) can:
|
|
74
|
-
*
|
|
75
|
-
* - Receive events
|
|
76
|
-
* - Emit snapshots of its state
|
|
77
|
-
*
|
|
78
|
-
* The transition function’s `state` is used as its transition actor’s
|
|
79
|
-
* `context`.
|
|
80
|
-
*
|
|
81
|
-
* Note that the "state" for a transition function is provided by the initial
|
|
82
|
-
* state argument, and is not the same as the State object of an actor or a
|
|
83
|
-
* state within a machine configuration.
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
*
|
|
87
|
-
* ```ts
|
|
88
|
-
* const transitionLogic = fromTransition(
|
|
89
|
-
* (state, event) => {
|
|
90
|
-
* if (event.type === 'increment') {
|
|
91
|
-
* return {
|
|
92
|
-
* ...state,
|
|
93
|
-
* count: state.count + 1
|
|
94
|
-
* };
|
|
95
|
-
* }
|
|
96
|
-
* return state;
|
|
97
|
-
* },
|
|
98
|
-
* { count: 0 }
|
|
99
|
-
* );
|
|
100
|
-
*
|
|
101
|
-
* const transitionActor = createActor(transitionLogic);
|
|
102
|
-
* transitionActor.subscribe((snapshot) => {
|
|
103
|
-
* console.log(snapshot);
|
|
104
|
-
* });
|
|
105
|
-
* transitionActor.start();
|
|
106
|
-
* // => {
|
|
107
|
-
* // status: 'active',
|
|
108
|
-
* // context: { count: 0 },
|
|
109
|
-
* // ...
|
|
110
|
-
* // }
|
|
111
|
-
*
|
|
112
|
-
* transitionActor.send({ type: 'increment' });
|
|
113
|
-
* // => {
|
|
114
|
-
* // status: 'active',
|
|
115
|
-
* // context: { count: 1 },
|
|
116
|
-
* // ...
|
|
117
|
-
* // }
|
|
118
|
-
* ```
|
|
119
|
-
*
|
|
120
|
-
* @param transition The transition function used to describe the transition
|
|
121
|
-
* logic. It should return the next state given the current state and event.
|
|
122
|
-
* It receives the following arguments:
|
|
123
|
-
*
|
|
124
|
-
* - `state` - the current state.
|
|
125
|
-
* - `event` - the received event.
|
|
126
|
-
* - `actorScope` - the actor scope object, with properties like `self` and
|
|
127
|
-
* `system`.
|
|
128
|
-
*
|
|
129
|
-
* @param initialContext The initial state of the transition function, either an
|
|
130
|
-
* object representing the state, or a function which returns a state object.
|
|
131
|
-
* If a function, it will receive as its only argument an object with the
|
|
132
|
-
* following properties:
|
|
133
|
-
*
|
|
134
|
-
* - `input` - the `input` provided to its parent transition actor.
|
|
135
|
-
* - `self` - a reference to its parent transition actor.
|
|
136
|
-
*
|
|
137
|
-
* @returns Actor logic
|
|
138
|
-
* @see {@link https://stately.ai/docs/input | Input docs} for more information about how input is passed
|
|
139
|
-
*/
|
|
140
|
-
export declare function fromTransition<TContext, TEvent extends EventObject, TSystem extends AnyActorSystem, TInput extends NonReducibleUnknown, TEmitted extends EventObject = EventObject>(transition: (snapshot: TContext, event: TEvent, actorScope: ActorScope<TransitionSnapshot<TContext>, TEvent, TSystem, TEmitted>) => TContext, initialContext: TContext | (({ input, self }: {
|
|
141
|
-
input: TInput;
|
|
142
|
-
self: TransitionActorRef<TContext, TEvent>;
|
|
143
|
-
}) => TContext)): TransitionActorLogic<TContext, TEvent, TInput, TEmitted>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { AnyActor, DevToolsAdapter } from "../types.js";
|
|
2
|
-
type ServiceListener = (service: AnyActor) => void;
|
|
3
|
-
export interface XStateDevInterface {
|
|
4
|
-
register: (service: AnyActor) => void;
|
|
5
|
-
unregister: (service: AnyActor) => void;
|
|
6
|
-
onRegister: (listener: ServiceListener) => {
|
|
7
|
-
unsubscribe: () => void;
|
|
8
|
-
};
|
|
9
|
-
services: Set<AnyActor>;
|
|
10
|
-
}
|
|
11
|
-
export declare function getGlobal(): typeof globalThis | undefined;
|
|
12
|
-
export declare function registerService(service: AnyActor): void;
|
|
13
|
-
export declare const devToolsAdapter: DevToolsAdapter;
|
|
14
|
-
export {};
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import type { EventObject, StateValue, MachineContext, ParameterizedObject, AnyMachineSnapshot, NoRequiredParams, WithDynamicParams, Identity, Elements, DoNotInfer } from "./types.js";
|
|
2
|
-
type SingleGuardArg<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TGuardArg> = [TGuardArg] extends [{
|
|
3
|
-
type: string;
|
|
4
|
-
}] ? Identity<TGuardArg> : [TGuardArg] extends [string] ? TGuardArg : GuardPredicate<TContext, TExpressionEvent, TParams, ParameterizedObject>;
|
|
5
|
-
type NormalizeGuardArg<TGuardArg> = TGuardArg extends {
|
|
6
|
-
type: string;
|
|
7
|
-
} ? Identity<TGuardArg> & {
|
|
8
|
-
params: unknown;
|
|
9
|
-
} : TGuardArg extends string ? {
|
|
10
|
-
type: TGuardArg;
|
|
11
|
-
params: undefined;
|
|
12
|
-
} : '_out_TGuard' extends keyof TGuardArg ? TGuardArg['_out_TGuard'] & ParameterizedObject : never;
|
|
13
|
-
type NormalizeGuardArgArray<TArg extends unknown[]> = Elements<{
|
|
14
|
-
[K in keyof TArg]: NormalizeGuardArg<TArg[K]>;
|
|
15
|
-
}>;
|
|
16
|
-
export type GuardPredicate<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TGuard extends ParameterizedObject> = {
|
|
17
|
-
(args: GuardArgs<TContext, TExpressionEvent>, params: TParams): boolean;
|
|
18
|
-
_out_TGuard?: TGuard;
|
|
19
|
-
};
|
|
20
|
-
export interface GuardArgs<TContext extends MachineContext, TExpressionEvent extends EventObject> {
|
|
21
|
-
context: TContext;
|
|
22
|
-
event: TExpressionEvent;
|
|
23
|
-
}
|
|
24
|
-
export type Guard<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TGuard extends ParameterizedObject> = NoRequiredParams<TGuard> | WithDynamicParams<TContext, TExpressionEvent, TGuard> | GuardPredicate<TContext, TExpressionEvent, TParams, TGuard>;
|
|
25
|
-
export type UnknownGuard = UnknownReferencedGuard | UnknownInlineGuard;
|
|
26
|
-
type UnknownReferencedGuard = Guard<MachineContext, EventObject, ParameterizedObject['params'], ParameterizedObject>;
|
|
27
|
-
type UnknownInlineGuard = Guard<MachineContext, EventObject, undefined, ParameterizedObject>;
|
|
28
|
-
export declare function stateIn<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined>(stateValue: StateValue): GuardPredicate<TContext, TExpressionEvent, TParams, any>;
|
|
29
|
-
/**
|
|
30
|
-
* Higher-order guard that evaluates to `true` if the `guard` passed to it
|
|
31
|
-
* evaluates to `false`.
|
|
32
|
-
*
|
|
33
|
-
* @category Guards
|
|
34
|
-
* @example
|
|
35
|
-
*
|
|
36
|
-
* ```ts
|
|
37
|
-
* import { setup, not } from 'xstate';
|
|
38
|
-
*
|
|
39
|
-
* const machine = setup({
|
|
40
|
-
* guards: {
|
|
41
|
-
* someNamedGuard: () => false
|
|
42
|
-
* }
|
|
43
|
-
* }).createMachine({
|
|
44
|
-
* on: {
|
|
45
|
-
* someEvent: {
|
|
46
|
-
* guard: not('someNamedGuard'),
|
|
47
|
-
* actions: () => {
|
|
48
|
-
* // will be executed if guard in `not(...)`
|
|
49
|
-
* // evaluates to `false`
|
|
50
|
-
* }
|
|
51
|
-
* }
|
|
52
|
-
* }
|
|
53
|
-
* });
|
|
54
|
-
* ```
|
|
55
|
-
*
|
|
56
|
-
* @returns A guard
|
|
57
|
-
*/
|
|
58
|
-
export declare function not<TContext extends MachineContext, TExpressionEvent extends EventObject, TArg>(guard: SingleGuardArg<TContext, TExpressionEvent, unknown, TArg>): GuardPredicate<TContext, TExpressionEvent, unknown, NormalizeGuardArg<DoNotInfer<TArg>>>;
|
|
59
|
-
/**
|
|
60
|
-
* Higher-order guard that evaluates to `true` if all `guards` passed to it
|
|
61
|
-
* evaluate to `true`.
|
|
62
|
-
*
|
|
63
|
-
* @category Guards
|
|
64
|
-
* @example
|
|
65
|
-
*
|
|
66
|
-
* ```ts
|
|
67
|
-
* import { setup, and } from 'xstate';
|
|
68
|
-
*
|
|
69
|
-
* const machine = setup({
|
|
70
|
-
* guards: {
|
|
71
|
-
* someNamedGuard: () => true
|
|
72
|
-
* }
|
|
73
|
-
* }).createMachine({
|
|
74
|
-
* on: {
|
|
75
|
-
* someEvent: {
|
|
76
|
-
* guard: and([({ context }) => context.value > 0, 'someNamedGuard']),
|
|
77
|
-
* actions: () => {
|
|
78
|
-
* // will be executed if all guards in `and(...)`
|
|
79
|
-
* // evaluate to true
|
|
80
|
-
* }
|
|
81
|
-
* }
|
|
82
|
-
* }
|
|
83
|
-
* });
|
|
84
|
-
* ```
|
|
85
|
-
*
|
|
86
|
-
* @returns A guard action object
|
|
87
|
-
*/
|
|
88
|
-
export declare function and<TContext extends MachineContext, TExpressionEvent extends EventObject, TArg extends unknown[]>(guards: readonly [
|
|
89
|
-
...{
|
|
90
|
-
[K in keyof TArg]: SingleGuardArg<TContext, TExpressionEvent, unknown, TArg[K]>;
|
|
91
|
-
}
|
|
92
|
-
]): GuardPredicate<TContext, TExpressionEvent, unknown, NormalizeGuardArgArray<DoNotInfer<TArg>>>;
|
|
93
|
-
/**
|
|
94
|
-
* Higher-order guard that evaluates to `true` if any of the `guards` passed to
|
|
95
|
-
* it evaluate to `true`.
|
|
96
|
-
*
|
|
97
|
-
* @category Guards
|
|
98
|
-
* @example
|
|
99
|
-
*
|
|
100
|
-
* ```ts
|
|
101
|
-
* import { setup, or } from 'xstate';
|
|
102
|
-
*
|
|
103
|
-
* const machine = setup({
|
|
104
|
-
* guards: {
|
|
105
|
-
* someNamedGuard: () => true
|
|
106
|
-
* }
|
|
107
|
-
* }).createMachine({
|
|
108
|
-
* on: {
|
|
109
|
-
* someEvent: {
|
|
110
|
-
* guard: or([({ context }) => context.value > 0, 'someNamedGuard']),
|
|
111
|
-
* actions: () => {
|
|
112
|
-
* // will be executed if any of the guards in `or(...)`
|
|
113
|
-
* // evaluate to true
|
|
114
|
-
* }
|
|
115
|
-
* }
|
|
116
|
-
* }
|
|
117
|
-
* });
|
|
118
|
-
* ```
|
|
119
|
-
*
|
|
120
|
-
* @returns A guard action object
|
|
121
|
-
*/
|
|
122
|
-
export declare function or<TContext extends MachineContext, TExpressionEvent extends EventObject, TArg extends unknown[]>(guards: readonly [
|
|
123
|
-
...{
|
|
124
|
-
[K in keyof TArg]: SingleGuardArg<TContext, TExpressionEvent, unknown, TArg[K]>;
|
|
125
|
-
}
|
|
126
|
-
]): GuardPredicate<TContext, TExpressionEvent, unknown, NormalizeGuardArgArray<DoNotInfer<TArg>>>;
|
|
127
|
-
export declare function evaluateGuard<TContext extends MachineContext, TExpressionEvent extends EventObject>(guard: UnknownGuard | UnknownInlineGuard, context: TContext, event: TExpressionEvent, snapshot: AnyMachineSnapshot): boolean;
|
|
128
|
-
export {};
|