xstate 4.32.0 → 4.33.1
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/dist/xstate.interpreter.js +1 -1
- package/dist/xstate.js +1 -1
- package/dist/xstate.web.js +2 -2
- package/es/Machine.js +7 -0
- package/es/State.d.ts +2 -2
- package/es/StateNode.d.ts +3 -8
- package/es/StateNode.js +53 -57
- package/es/actions.d.ts +2 -2
- package/es/actions.js +43 -9
- package/es/interpreter.d.ts +4 -1
- package/es/interpreter.js +308 -254
- package/es/stateUtils.d.ts +1 -0
- package/es/stateUtils.js +6 -3
- package/es/types.d.ts +11 -1
- package/es/utils.d.ts +1 -1
- package/es/utils.js +6 -10
- package/lib/Machine.js +7 -0
- package/lib/State.d.ts +2 -2
- package/lib/StateNode.d.ts +3 -8
- package/lib/StateNode.js +51 -55
- package/lib/actions.d.ts +2 -2
- package/lib/actions.js +43 -9
- package/lib/interpreter.d.ts +4 -1
- package/lib/interpreter.js +303 -249
- package/lib/stateUtils.d.ts +1 -0
- package/lib/stateUtils.js +6 -2
- package/lib/types.d.ts +11 -1
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +6 -10
- package/package.json +1 -1
- package/CHANGELOG.md +0 -1497
package/lib/stateUtils.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { StateNode } from './StateNode';
|
|
|
3
3
|
declare type Configuration<TC, TE extends EventObject> = Iterable<StateNode<TC, any, TE>>;
|
|
4
4
|
declare type AdjList<TC, TE extends EventObject> = Map<StateNode<TC, any, TE>, Array<StateNode<TC, any, TE>>>;
|
|
5
5
|
export declare const isLeafNode: (stateNode: StateNode<any, any, any, any, any, any>) => boolean;
|
|
6
|
+
export declare function getAllChildren<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE>): Array<StateNode<TC, any, TE>>;
|
|
6
7
|
export declare function getChildren<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE>): Array<StateNode<TC, any, TE>>;
|
|
7
8
|
export declare function getAllStateNodes<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE, any, any, any>): Array<StateNode<TC, any, TE, any, any, any>>;
|
|
8
9
|
export declare function getConfiguration<TC, TE extends EventObject>(prevStateNodes: Iterable<StateNode<TC, any, TE, any, any, any>>, stateNodes: Iterable<StateNode<TC, any, TE, any, any, any>>): Set<StateNode<TC, any, TE, any, any, any>>;
|
package/lib/stateUtils.js
CHANGED
|
@@ -8,10 +8,13 @@ var utils = require('./utils.js');
|
|
|
8
8
|
var isLeafNode = function (stateNode) {
|
|
9
9
|
return stateNode.type === 'atomic' || stateNode.type === 'final';
|
|
10
10
|
};
|
|
11
|
-
function
|
|
11
|
+
function getAllChildren(stateNode) {
|
|
12
12
|
return Object.keys(stateNode.states).map(function (key) {
|
|
13
13
|
return stateNode.states[key];
|
|
14
|
-
})
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function getChildren(stateNode) {
|
|
17
|
+
return getAllChildren(stateNode).filter(function (sn) {
|
|
15
18
|
return sn.type !== 'history';
|
|
16
19
|
});
|
|
17
20
|
}
|
|
@@ -261,6 +264,7 @@ function getTagsFromConfiguration(configuration) {
|
|
|
261
264
|
}
|
|
262
265
|
|
|
263
266
|
exports.getAdjList = getAdjList;
|
|
267
|
+
exports.getAllChildren = getAllChildren;
|
|
264
268
|
exports.getAllStateNodes = getAllStateNodes;
|
|
265
269
|
exports.getChildren = getChildren;
|
|
266
270
|
exports.getConfiguration = getConfiguration;
|
package/lib/types.d.ts
CHANGED
|
@@ -422,6 +422,12 @@ export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEv
|
|
|
422
422
|
* @default false
|
|
423
423
|
*/
|
|
424
424
|
preserveActionOrder?: boolean;
|
|
425
|
+
/**
|
|
426
|
+
* Whether XState calls actions with the event directly responsible for the related transition.
|
|
427
|
+
*
|
|
428
|
+
* @default false
|
|
429
|
+
*/
|
|
430
|
+
predictableActionArguments?: boolean;
|
|
425
431
|
/**
|
|
426
432
|
* A text description of the state node
|
|
427
433
|
*/
|
|
@@ -856,6 +862,9 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
856
862
|
*/
|
|
857
863
|
activities?: ActivityMap;
|
|
858
864
|
meta?: any;
|
|
865
|
+
/**
|
|
866
|
+
* @deprecated
|
|
867
|
+
*/
|
|
859
868
|
events?: TEvent[];
|
|
860
869
|
configuration: Array<StateNode<TContext, any, TEvent>>;
|
|
861
870
|
transitions: Array<TransitionDefinition<TContext, TEvent>>;
|
|
@@ -1018,7 +1027,7 @@ export interface Behavior<TEvent extends EventObject, TEmitted = any> {
|
|
|
1018
1027
|
initialState: TEmitted;
|
|
1019
1028
|
start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
|
|
1020
1029
|
}
|
|
1021
|
-
export declare type EmittedFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TEmitted> ? TEmitted : R extends Behavior<infer _, infer TEmitted> ? TEmitted : R extends ActorContext<infer _, infer TEmitted> ? TEmitted : never : never;
|
|
1030
|
+
export declare type EmittedFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends Interpreter<infer _, infer __, infer ___, infer ____, infer _____> ? R['initialState'] : R extends ActorRef<infer _, infer TEmitted> ? TEmitted : R extends Behavior<infer _, infer TEmitted> ? TEmitted : R extends ActorContext<infer _, infer TEmitted> ? TEmitted : never : never;
|
|
1022
1031
|
declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ___, infer ____, infer _____, infer ______> ? TEvent : R extends Model<infer _, infer TEvent, infer __, infer ___> ? TEvent : R extends State<infer _, infer TEvent, infer __, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ___, infer ____> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
|
1023
1032
|
export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
|
|
1024
1033
|
export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____, infer _____, infer ______> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : never : never;
|
|
@@ -1027,5 +1036,6 @@ declare type Matches<TypegenEnabledArg, TypegenDisabledArg> = {
|
|
|
1027
1036
|
(stateValue: TypegenDisabledArg): any;
|
|
1028
1037
|
};
|
|
1029
1038
|
export declare type StateValueFrom<TMachine extends AnyStateMachine> = StateFrom<TMachine>['matches'] extends Matches<infer TypegenEnabledArg, infer TypegenDisabledArg> ? TMachine['__TResolvedTypesMeta'] extends TypegenEnabled ? TypegenEnabledArg : TypegenDisabledArg : never;
|
|
1039
|
+
export declare type PredictableActionArgumentsExec = (action: ActionObject<unknown, EventObject>, context: unknown, _event: SCXML.Event<EventObject>) => void;
|
|
1030
1040
|
export {};
|
|
1031
1041
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/utils.d.ts
CHANGED
|
@@ -67,6 +67,6 @@ export declare function normalizeTarget<TContext, TEvent extends EventObject>(ta
|
|
|
67
67
|
export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
|
|
68
68
|
export declare function evaluateGuard<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any, any>, guard: Guard<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
|
|
69
69
|
export declare function toInvokeSource(src: string | InvokeSourceDefinition): InvokeSourceDefinition;
|
|
70
|
-
export declare function toObserver<T>(nextHandler
|
|
70
|
+
export declare function toObserver<T>(nextHandler?: Partial<Observer<T>> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
|
|
71
71
|
export declare function createInvokeId(stateNodeId: string, index: number): string;
|
|
72
72
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.js
CHANGED
|
@@ -609,18 +609,14 @@ function toInvokeSource(src) {
|
|
|
609
609
|
return src;
|
|
610
610
|
}
|
|
611
611
|
function toObserver(nextHandler, errorHandler, completionHandler) {
|
|
612
|
-
|
|
613
|
-
return nextHandler;
|
|
614
|
-
}
|
|
615
|
-
|
|
616
|
-
var noop = function () {
|
|
617
|
-
return void 0;
|
|
618
|
-
};
|
|
612
|
+
var noop = function () {};
|
|
619
613
|
|
|
614
|
+
var isObserver = typeof nextHandler === 'object';
|
|
615
|
+
var self = isObserver ? nextHandler : null;
|
|
620
616
|
return {
|
|
621
|
-
next: nextHandler,
|
|
622
|
-
error: errorHandler || noop,
|
|
623
|
-
complete: completionHandler || noop
|
|
617
|
+
next: ((isObserver ? nextHandler.next : nextHandler) || noop).bind(self),
|
|
618
|
+
error: ((isObserver ? nextHandler.error : errorHandler) || noop).bind(self),
|
|
619
|
+
complete: ((isObserver ? nextHandler.complete : completionHandler) || noop).bind(self)
|
|
624
620
|
};
|
|
625
621
|
}
|
|
626
622
|
function createInvokeId(stateNodeId, index) {
|