xstate 5.0.0-beta.25 → 5.0.0-beta.26
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { StateNode } from "./StateNode.js";
|
|
2
2
|
import { TypegenDisabled, TypegenEnabled } from "./typegenTypes.js";
|
|
3
|
-
import type { ProvidedActor, ActorRefFrom, AnyState, AnyStateMachine, EventObject, HistoryValue, MachineContext, PersistedMachineState, Prop, StateConfig, StateValue, TODO, AnyActorRef, Compute } from "./types.js";
|
|
3
|
+
import type { ProvidedActor, ActorRefFrom, AnyState, AnyStateMachine, EventObject, HistoryValue, MachineContext, PersistedMachineState, Prop, StateConfig, StateValue, TODO, AnyActorRef, Compute, EventDescriptor } from "./types.js";
|
|
4
4
|
type ComputeConcreteChildren<TActor extends ProvidedActor> = {
|
|
5
5
|
[A in TActor as 'id' extends keyof A ? A['id'] & string : never]?: ActorRefFrom<A['logic']>;
|
|
6
6
|
};
|
|
@@ -84,7 +84,7 @@ export declare class State<TContext extends MachineContext, TEvent extends Event
|
|
|
84
84
|
/**
|
|
85
85
|
* The next events that will cause a transition from the current state.
|
|
86
86
|
*/
|
|
87
|
-
get nextEvents(): Array<
|
|
87
|
+
get nextEvents(): Array<EventDescriptor<TEvent>>;
|
|
88
88
|
get meta(): Record<string, any>;
|
|
89
89
|
}
|
|
90
90
|
export declare function cloneState<TState extends AnyState>(state: TState, config?: Partial<StateConfig<any, any>>): TState;
|
|
@@ -162,8 +162,11 @@ export type StatesDefinition<TContext extends MachineContext, TEvent extends Eve
|
|
|
162
162
|
export type TransitionConfigTarget = string | undefined;
|
|
163
163
|
export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TAction, TGuard, TDelay>>;
|
|
164
164
|
export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
165
|
-
[K in TEvent
|
|
165
|
+
[K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TAction, TGuard, TDelay>;
|
|
166
166
|
};
|
|
167
|
+
type PartialEventDescriptor<TEventType extends string> = TEventType extends `${infer TLeading}.${infer TTail}` ? `${TLeading}.*` | `${TLeading}.${PartialEventDescriptor<TTail>}` : never;
|
|
168
|
+
export type EventDescriptor<TEvent extends EventObject> = TEvent['type'] | PartialEventDescriptor<TEvent['type']> | '*';
|
|
169
|
+
type NormalizeDescriptor<TDescriptor extends string> = TDescriptor extends '*' ? string : TDescriptor extends `${infer TLeading}.*` ? `${TLeading}.${string}` : TDescriptor;
|
|
167
170
|
type IsLiteralString<T extends string> = string extends T ? false : true;
|
|
168
171
|
type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = TActor extends {
|
|
169
172
|
src: infer TSrc;
|
|
@@ -544,13 +547,13 @@ export interface TransitionDefinition<TContext extends MachineContext, TEvent ex
|
|
|
544
547
|
actions: readonly UnknownAction[];
|
|
545
548
|
reenter: boolean;
|
|
546
549
|
guard?: UnknownGuard;
|
|
547
|
-
eventType: TEvent
|
|
550
|
+
eventType: EventDescriptor<TEvent>;
|
|
548
551
|
toJSON: () => {
|
|
549
552
|
target: string[] | undefined;
|
|
550
553
|
source: string;
|
|
551
554
|
actions: readonly UnknownAction[];
|
|
552
555
|
guard?: UnknownGuard;
|
|
553
|
-
eventType: TEvent
|
|
556
|
+
eventType: EventDescriptor<TEvent>;
|
|
554
557
|
meta?: Record<string, any>;
|
|
555
558
|
};
|
|
556
559
|
}
|
|
@@ -560,9 +563,7 @@ export interface InitialTransitionDefinition<TContext extends MachineContext, TE
|
|
|
560
563
|
guard?: never;
|
|
561
564
|
}
|
|
562
565
|
export type TransitionDefinitionMap<TContext extends MachineContext, TEvent extends EventObject> = {
|
|
563
|
-
[K in TEvent
|
|
564
|
-
type: K;
|
|
565
|
-
}> : EventObject>>;
|
|
566
|
+
[K in EventDescriptor<TEvent>]: Array<TransitionDefinition<TContext, ExtractEvent<TEvent, K>>>;
|
|
566
567
|
};
|
|
567
568
|
export interface DelayedTransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends TransitionDefinition<TContext, TEvent> {
|
|
568
569
|
delay: number | string | DelayExpr<TContext, TEvent, undefined>;
|
|
@@ -650,7 +651,7 @@ export interface Subscribable<T> extends InteropSubscribable<T> {
|
|
|
650
651
|
subscribe(observer: Observer<T>): Subscription;
|
|
651
652
|
subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
|
|
652
653
|
}
|
|
653
|
-
export type ExtractEvent<TEvent extends EventObject,
|
|
654
|
+
export type ExtractEvent<TEvent extends EventObject, TDescriptor extends EventDescriptor<TEvent>> = string extends TEvent['type'] ? TEvent : NormalizeDescriptor<TDescriptor> extends infer TNormalizedDescriptor ? TEvent extends any ? TEvent['type'] extends TNormalizedDescriptor ? TEvent : never : never : never;
|
|
654
655
|
export interface BaseActorRef<TEvent extends EventObject> {
|
|
655
656
|
send: (event: TEvent) => void;
|
|
656
657
|
}
|