@doeixd/machine 1.0.2 → 1.1.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/README.md +48 -0
- package/dist/cjs/development/core.js +11 -9
- package/dist/cjs/development/core.js.map +3 -3
- package/dist/cjs/development/delegate.js +89 -0
- package/dist/cjs/development/delegate.js.map +7 -0
- package/dist/cjs/development/index.js +385 -167
- package/dist/cjs/development/index.js.map +4 -4
- package/dist/cjs/development/minimal.js +163 -0
- package/dist/cjs/development/minimal.js.map +7 -0
- package/dist/cjs/development/react.js +11 -9
- package/dist/cjs/development/react.js.map +3 -3
- package/dist/cjs/production/core.js +1 -1
- package/dist/cjs/production/delegate.js +1 -0
- package/dist/cjs/production/index.js +3 -3
- package/dist/cjs/production/minimal.js +1 -0
- package/dist/cjs/production/react.js +1 -1
- package/dist/esm/development/core.js +11 -9
- package/dist/esm/development/core.js.map +3 -3
- package/dist/esm/development/delegate.js +68 -0
- package/dist/esm/development/delegate.js.map +7 -0
- package/dist/esm/development/index.js +391 -167
- package/dist/esm/development/index.js.map +4 -4
- package/dist/esm/development/minimal.js +140 -0
- package/dist/esm/development/minimal.js.map +7 -0
- package/dist/esm/development/react.js +11 -9
- package/dist/esm/development/react.js.map +3 -3
- package/dist/esm/production/core.js +1 -1
- package/dist/esm/production/delegate.js +1 -0
- package/dist/esm/production/index.js +3 -3
- package/dist/esm/production/minimal.js +1 -0
- package/dist/esm/production/react.js +1 -1
- package/dist/types/base.d.ts +56 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/delegate.d.ts +101 -0
- package/dist/types/delegate.d.ts.map +1 -0
- package/dist/types/higher-order.d.ts +2 -1
- package/dist/types/higher-order.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -49
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/minimal.d.ts +95 -0
- package/dist/types/minimal.d.ts.map +1 -0
- package/dist/types/types.d.ts +63 -0
- package/dist/types/types.d.ts.map +1 -0
- package/package.json +25 -1
- package/src/base.ts +62 -0
- package/src/delegate.ts +267 -0
- package/src/higher-order.ts +2 -2
- package/src/index.ts +15 -55
- package/src/middleware.ts +1049 -1050
- package/src/minimal.ts +269 -0
- package/src/types.ts +85 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts the names of all function properties (transitions) from a type.
|
|
3
|
+
*/
|
|
4
|
+
type TransitionNamesOf<T> = {
|
|
5
|
+
[K in keyof T]: T[K] extends (...args: any[]) => any ? K : never;
|
|
6
|
+
}[keyof T];
|
|
7
|
+
/**
|
|
8
|
+
* Extracts the argument types of a function.
|
|
9
|
+
*/
|
|
10
|
+
type ArgsOf<F> = F extends (...args: infer A) => any ? A : never;
|
|
11
|
+
/**
|
|
12
|
+
* Creates delegated transitions that forward to a child and return the parent.
|
|
13
|
+
*
|
|
14
|
+
* @typeParam Child - Child machine type
|
|
15
|
+
* @typeParam Parent - Parent machine return type
|
|
16
|
+
*/
|
|
17
|
+
type DelegatedTransitions<Child extends object, Parent> = {
|
|
18
|
+
[K in TransitionNamesOf<Child>]: (...args: ArgsOf<Child[K]>) => Parent;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Renamed delegated transitions using a mapping object.
|
|
22
|
+
*
|
|
23
|
+
* @typeParam Child - Child machine type
|
|
24
|
+
* @typeParam Parent - Parent machine return type
|
|
25
|
+
* @typeParam Mapping - Object mapping child transition names to parent names
|
|
26
|
+
*/
|
|
27
|
+
type RenamedDelegatedTransitions<Child extends object, Parent, Mapping extends Partial<Record<TransitionNamesOf<Child>, string>>> = {
|
|
28
|
+
[K in keyof Mapping as Mapping[K] extends string ? Mapping[K] : never]: K extends TransitionNamesOf<Child> ? (...args: ArgsOf<Child[K]>) => Parent : never;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Subset of delegated transitions.
|
|
32
|
+
*
|
|
33
|
+
* @typeParam Child - Child machine type
|
|
34
|
+
* @typeParam Parent - Parent machine return type
|
|
35
|
+
* @typeParam Keys - Subset of child transition names to delegate
|
|
36
|
+
*/
|
|
37
|
+
type PickedDelegatedTransitions<Child extends object, Parent, Keys extends TransitionNamesOf<Child>> = {
|
|
38
|
+
[K in Keys]: (...args: ArgsOf<Child[K]>) => Parent;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Options for delegate function.
|
|
42
|
+
*/
|
|
43
|
+
type DelegateOptions<Child extends object> = {
|
|
44
|
+
pick: Array<TransitionNamesOf<Child>>;
|
|
45
|
+
} | {
|
|
46
|
+
omit: Array<TransitionNamesOf<Child>>;
|
|
47
|
+
} | {
|
|
48
|
+
rename: Partial<Record<TransitionNamesOf<Child>, string>>;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Delegates child machine transitions to the parent level.
|
|
52
|
+
*
|
|
53
|
+
* When a delegated transition is called on the parent, it:
|
|
54
|
+
* 1. Calls the corresponding transition on the child
|
|
55
|
+
* 2. Updates the parent's context with the new child state
|
|
56
|
+
* 3. Returns a new parent machine
|
|
57
|
+
*
|
|
58
|
+
* This enables "flat" composition where child transitions appear directly
|
|
59
|
+
* on the parent, as opposed to `withChildren()` which namespaces them.
|
|
60
|
+
*
|
|
61
|
+
* @typeParam Ctx - Parent context type
|
|
62
|
+
* @typeParam Key - Key where child is stored in parent context
|
|
63
|
+
* @typeParam R - Parent machine return type (e.g. Machine<Ctx, T>)
|
|
64
|
+
*
|
|
65
|
+
* @param ctx - Current parent context (from transition factory)
|
|
66
|
+
* @param key - Property key of the child machine in context
|
|
67
|
+
* @param next - The `next` function from the parent's transition factory
|
|
68
|
+
* @param options - Optional: pick, omit, or rename specific transitions
|
|
69
|
+
*
|
|
70
|
+
* @returns Object of delegated transitions to spread into parent's transitions
|
|
71
|
+
*/
|
|
72
|
+
export declare function delegate<Ctx extends object, Key extends keyof Ctx, R, Child extends Ctx[Key] & object = Ctx[Key] & object>(ctx: Ctx, key: Key, next: (c: Ctx) => R): DelegatedTransitions<Child, R>;
|
|
73
|
+
export declare function delegate<Ctx extends object, Key extends keyof Ctx, R, Child extends Ctx[Key] & object, Keys extends TransitionNamesOf<Child>>(ctx: Ctx, key: Key, next: (c: Ctx) => R, options: {
|
|
74
|
+
pick: Keys[];
|
|
75
|
+
}): PickedDelegatedTransitions<Child, R, Keys>;
|
|
76
|
+
export declare function delegate<Ctx extends object, Key extends keyof Ctx, R, Child extends Ctx[Key] & object, Keys extends TransitionNamesOf<Child>>(ctx: Ctx, key: Key, next: (c: Ctx) => R, options: {
|
|
77
|
+
omit: Keys[];
|
|
78
|
+
}): DelegatedTransitions<Omit<Child, Keys>, R>;
|
|
79
|
+
export declare function delegate<Ctx extends object, Key extends keyof Ctx, R, Child extends Ctx[Key] & object, Mapping extends Partial<Record<TransitionNamesOf<Child>, string>>>(ctx: Ctx, key: Key, next: (c: Ctx) => R, options: {
|
|
80
|
+
rename: Mapping;
|
|
81
|
+
}): RenamedDelegatedTransitions<Child, R, Mapping>;
|
|
82
|
+
/**
|
|
83
|
+
* Type helper to get transition names from a machine or object.
|
|
84
|
+
* Useful for type-safe pick/omit/rename options.
|
|
85
|
+
*/
|
|
86
|
+
export type TransitionsOf<M> = TransitionNamesOf<M>;
|
|
87
|
+
/**
|
|
88
|
+
* Creates a delegate helper bound to a specific context and next function.
|
|
89
|
+
* Useful when delegating multiple children to avoid repetition.
|
|
90
|
+
*/
|
|
91
|
+
export declare function createDelegate<Ctx extends object, R>(ctx: Ctx, next: (c: Ctx) => R): <Key extends keyof Ctx>(key: Key, options?: DelegateOptions<Ctx[Key] & object>) => PickedDelegatedTransitions<Ctx[Key] & object, R, TransitionNamesOf<Ctx[Key] & object>>;
|
|
92
|
+
/**
|
|
93
|
+
* Delegates all transitions from multiple children, optionally with a prefix.
|
|
94
|
+
*/
|
|
95
|
+
export declare function delegateAll<Ctx extends object, Keys extends keyof Ctx, R>(ctx: Ctx, keys: Keys[], next: (c: Ctx) => R, prefix?: boolean): Record<string, (...args: unknown[]) => R>;
|
|
96
|
+
/**
|
|
97
|
+
* Type-safe helper to create a rename mapping for delegate.
|
|
98
|
+
*/
|
|
99
|
+
export declare function renameMap<M extends object>(): <T extends Partial<Record<TransitionNamesOf<M>, string>>>(mapping: T) => T;
|
|
100
|
+
export {};
|
|
101
|
+
//# sourceMappingURL=delegate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/delegate.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Think of this as the "standard library" of common machine patterns.
|
|
10
10
|
*/
|
|
11
|
-
import { MachineBase
|
|
11
|
+
import { MachineBase } from './base';
|
|
12
|
+
import { Machine, Transitions, Context } from './index';
|
|
12
13
|
/**
|
|
13
14
|
* A type utility to infer the child machine type from a parent.
|
|
14
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"higher-order.d.ts","sourceRoot":"","sources":["../../src/higher-order.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"higher-order.d.ts","sourceRoot":"","sources":["../../src/higher-order.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -552,55 +552,7 @@ export declare function runMachine<M extends AsyncMachine<any>>(initial: M, onCh
|
|
|
552
552
|
/** Stops any pending async operation and cleans up resources. */
|
|
553
553
|
stop: () => void;
|
|
554
554
|
};
|
|
555
|
-
|
|
556
|
-
* An optional base class for creating machines using an Object-Oriented style.
|
|
557
|
-
*
|
|
558
|
-
* This class provides the fundamental structure required by the library: a `context`
|
|
559
|
-
* property to hold the state. By extending `MachineBase`, you get a clear and
|
|
560
|
-
* type-safe starting point for defining states and transitions as classes and methods.
|
|
561
|
-
*
|
|
562
|
-
* Transitions should be implemented as methods that return a new instance of a
|
|
563
|
-
* state machine class (often `new MyClass(...)` or by using a `createMachineBuilder`).
|
|
564
|
-
* The `context` is marked `readonly` to enforce the immutable update pattern.
|
|
565
|
-
*
|
|
566
|
-
* @template C - The context object type that defines the state for this machine.
|
|
567
|
-
*
|
|
568
|
-
* @example
|
|
569
|
-
* // Define a simple counter state
|
|
570
|
-
* class Counter extends MachineBase<{ readonly count: number }> {
|
|
571
|
-
* constructor(count = 0) {
|
|
572
|
-
* super({ count });
|
|
573
|
-
* }
|
|
574
|
-
*
|
|
575
|
-
* increment(): Counter {
|
|
576
|
-
* // Return a new instance for the next state
|
|
577
|
-
* return new Counter(this.context.count + 1);
|
|
578
|
-
* }
|
|
579
|
-
*
|
|
580
|
-
* add(n: number): Counter {
|
|
581
|
-
* return new Counter(this.context.count + n);
|
|
582
|
-
* }
|
|
583
|
-
* }
|
|
584
|
-
*
|
|
585
|
-
* const machine = new Counter(5);
|
|
586
|
-
* const nextState = machine.increment(); // Returns a new Counter instance
|
|
587
|
-
*
|
|
588
|
-
* console.log(machine.context.count); // 5 (original is unchanged)
|
|
589
|
-
* console.log(nextState.context.count); // 6 (new state)
|
|
590
|
-
*/
|
|
591
|
-
export declare class MachineBase<C extends object> {
|
|
592
|
-
/**
|
|
593
|
-
* The immutable state of the machine.
|
|
594
|
-
* To change the state, a transition method must return a new machine instance
|
|
595
|
-
* with a new context object.
|
|
596
|
-
*/
|
|
597
|
-
readonly context: C;
|
|
598
|
-
/**
|
|
599
|
-
* Initializes a new machine instance with its starting context.
|
|
600
|
-
* @param context - The initial state of the machine.
|
|
601
|
-
*/
|
|
602
|
-
constructor(context: C);
|
|
603
|
-
}
|
|
555
|
+
export { MachineBase } from './base';
|
|
604
556
|
/**
|
|
605
557
|
* Applies an update function to a machine's context, returning a new machine.
|
|
606
558
|
* This is a simpler alternative to `setContext` when you always use an updater function.
|
|
@@ -660,4 +612,7 @@ export { createTransitionFactory, createTransitionExtender, createFunctionalMach
|
|
|
660
612
|
export { createMatcher, classCase, discriminantCase, customCase, forContext, type MatcherCase, type CasesToMapping, type MatcherUnion, type CaseNames, type CaseHandler, type ExhaustivenessMarker, type IsExhaustive, type WhenBuilder, type Matcher } from './matcher';
|
|
661
613
|
export { Actor, createActor, spawn, fromPromise, fromObservable, type ActorRef, type InspectionEvent } from './actor';
|
|
662
614
|
export { createContextBoundMachine, callWithContext, isContextBound, type ContextBoundMachine } from './context-bound';
|
|
615
|
+
export * as minimal from './minimal';
|
|
616
|
+
export * as delegate from './delegate';
|
|
617
|
+
export * from './types';
|
|
663
618
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,OAAO,CACjB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,GAAG,EAAE,IACnB;IACF,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;CACrB,GAAG,CAAC,CAAC;AAEN;;;;GAIG;AACH,MAAM,MAAM,YAAY,CACtB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,GAAG,EAAE,IACnB;IACF,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;CACrB,GAAG,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,IAC1F,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GACjC,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,EAAE,iBAAiB,CAAC,GAAG,IAAI,GAAG,CAAC,GACvD,KAAK,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/E;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,EAAE,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAGzF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,MAAM,EAAE,WAAW,CAAC;CACrB;AASD;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAE/D;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAEzE;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,IAC3E,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AACrD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;AAE5F;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAC1C,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GACpC,CAAC,CAAC,CAAC,CAAC,GACJ,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClB,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAG5E,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,IAChF;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAA;KAAE;CAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAEpH;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,IAAI;KAC7C,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAC9E;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GACpB,KAAK;CACR,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC;AAGrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;KAC3E,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;CAChJ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;KAChF,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACnK,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;KACrC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAClF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,SAAS,CAClE,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,MAAM,CAAC,GACR,CAAC,GACD,GAAG,SAAS,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC,CAAA;CAAE,GACxC,CAAC,GACD,GAAG,CAAC;AAER,uEAAuE;AACvE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAC5E,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK;CACnG,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;KACpC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAC/F,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK;CACzI,CAAC;AAMF;;;;;;;;GAQG;AACH;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACnE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EACvL,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAC7D,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjB;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,EACxI,OAAO,EAAE,CAAC,EACV,GAAG,EAAE,CAAC,GACL,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjB;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EACtE,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAuB9B;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAC7G,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAChE,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvC;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAC3E,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,CAAC,GACT,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnC;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAC7G,OAAO,EAAE,CAAC,EACV,GAAG,EAAE,CAAC,GACL,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAuBtB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,MAC3C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAC7D,cAAc,CAAC,MAmBP,gBAAgB,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC,MAhBnC,CAAC,qBACM,OAAO,CAAC,CAAC,CAAC,WACP,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,KAC9D,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAaoB,CAItD;AAOD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAC/C,OAAO,EAAE,CAAC,EACV,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GACvE,CAAC,CAUH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC5C,OAAO,EAAE,CAAC,GACT;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;CAAE,CAEzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACtB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAEnE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,GACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAIzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACtB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG;KACnE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CACjD,EACD,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAItC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAC3C,EAAE,SAAS,MAAM,OAAO,CAAC,GAAG,CAAC,EAE7B,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,EAAE,GACX,CACD,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,KACpB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,GAC3D,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,GAC/B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAmBlC;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACzD,eAAe,EAAE,CAAC,GACjB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAK5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAC1B,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACtB,CAAC,SAAS,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,EACnC,CAAC,EAED,OAAO,EAAE,CAAC,EACV,eAAe,EAAE,CAAC,EAClB,QAAQ,EAAE;KACP,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;CACtD,GACA,CAAC,CAOH;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CACtB,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACtB,CAAC,SAAS,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAEvB,OAAO,EAAE,CAAC,EACV,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,GACP,OAAO,IAAI,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KAAE,CAAC,CAAA;CAAE,CAElE;AAOD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EACpD,OAAO,EAAE,CAAC,EACV,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI;IAiDvB,4DAA4D;oBAC/C,OAAO,CAAC,CAAC,CAAC;IAGvB,4EAA4E;eA/CtD,CAAC,SAAS,KAAK,GAAgB,SAAS,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC;IAiD5E,iEAAiE;;EAQpE;AAGD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EACnC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAC9B,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IACpC,OAAO,CAAC,CAAC,CAAC,GACV,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAExB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IACtC,OAAO,CAAC,CAAC,CAAC,GACV,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAO7C,OAAO,EACL,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACV,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,UAAU,EACV,SAAS,EACT,cAAc,EACd,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAUtB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAMnB,cAAc,SAAS,CAAA;AAEvB,cAAc,gBAAgB,CAAA;AAM9B,cAAc,oBAAoB,CAAC;AAEnC,cAAc,UAAU,CAAC;AAMzB,OAAO,EACL,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,EACN,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EACL,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,WAAW,CAAC;AAMnB,OAAO,EACL,KAAK,EACL,WAAW,EACX,KAAK,EACL,WAAW,EACX,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,cAAc,EACd,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAMvC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview A minimal, type-safe typestate library.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* A state machine combining context (state data) with transitions (methods).
|
|
6
|
+
*/
|
|
7
|
+
export type Machine<C extends object, T> = C & T;
|
|
8
|
+
export * from './types';
|
|
9
|
+
import { type Tagged, type TagOf, type Cleanup } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Creates a state machine by bundling context with transitions.
|
|
12
|
+
*
|
|
13
|
+
* Note: 'any' is used in the 'next' callback signature to break recursive
|
|
14
|
+
* inference cycles. This is required for TypeScript to correctly infer
|
|
15
|
+
* transitions 'T' from the return object of the factory.
|
|
16
|
+
*/
|
|
17
|
+
export declare function machine<C extends object, T>(context: C, factory: (ctx: C, next: (context: C) => any) => T): C & T;
|
|
18
|
+
/**
|
|
19
|
+
* Handler functions for each case in a tagged union.
|
|
20
|
+
*/
|
|
21
|
+
export type MatchCases<T extends Tagged, R> = {
|
|
22
|
+
[K in TagOf<T>]: (state: Extract<T, {
|
|
23
|
+
tag: K;
|
|
24
|
+
}>) => R;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Exhaustive pattern matching on tagged unions.
|
|
28
|
+
*/
|
|
29
|
+
export declare function match<T extends Tagged, R>(state: T, cases: MatchCases<T, R>): R;
|
|
30
|
+
export interface Lifecycle<E extends string = string> {
|
|
31
|
+
onEnter?: (send: Send<E>) => Cleanup;
|
|
32
|
+
}
|
|
33
|
+
export type Send<E extends string = string> = (event: E, ...args: unknown[]) => void;
|
|
34
|
+
export type LifecycleMap<Tags extends string> = {
|
|
35
|
+
[K in Tags]?: Lifecycle<string>;
|
|
36
|
+
};
|
|
37
|
+
declare const LIFECYCLE: unique symbol;
|
|
38
|
+
export type RunnableMachine<M, Tags extends string> = M & {
|
|
39
|
+
[LIFECYCLE]?: LifecycleMap<Tags>;
|
|
40
|
+
};
|
|
41
|
+
export declare function runnable<M extends Tagged, Tags extends string = TagOf<M>>(initialMachine: M, lifecycles: LifecycleMap<Tags>): RunnableMachine<M, Tags>;
|
|
42
|
+
export interface Runner<M> {
|
|
43
|
+
get: () => M;
|
|
44
|
+
send: Send<string>;
|
|
45
|
+
stop: () => void;
|
|
46
|
+
subscribe: (listener: (state: M) => void) => () => void;
|
|
47
|
+
}
|
|
48
|
+
export declare function run<M extends Tagged>(initial: RunnableMachine<M, string>): Runner<M>;
|
|
49
|
+
export type ParentMachine<P extends object, C extends Record<string, object>> = P & {
|
|
50
|
+
[K in keyof C]: ChildProxy<P, C, C[K]>;
|
|
51
|
+
};
|
|
52
|
+
type ChildProxy<P extends object, C extends Record<string, object>, Child extends object> = {
|
|
53
|
+
[K in keyof Child]: Child[K] extends (...args: infer A) => unknown ? (...args: A) => ParentMachine<P, C> : Child[K];
|
|
54
|
+
};
|
|
55
|
+
export declare function withChildren<P extends object, C extends Record<string, object>>(parent: P, children: C): ParentMachine<P, C>;
|
|
56
|
+
export declare function factory<C extends object>(): <T>(transitionFactory: (ctx: C, next: (context: C) => any) => T) => (context: C) => C & T;
|
|
57
|
+
/**
|
|
58
|
+
* Extracts the union of all possible machine states from a union factory.
|
|
59
|
+
*/
|
|
60
|
+
export type UnionOf<F extends (...args: any[]) => any> = ReturnType<F>;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a union factory that routes to different transition factories based on a tag.
|
|
63
|
+
* This is the primary way to define multi-state machines (Type-States) in the minimal API.
|
|
64
|
+
*
|
|
65
|
+
* @param factories - A map of tags to transition factories.
|
|
66
|
+
* @returns A single factory function that produces the correct machine based on the input context's tag.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* const auth = union({
|
|
70
|
+
* idle: (ctx, next) => ({ login: () => next({ tag: 'loggedIn', user: 'alice' }) }),
|
|
71
|
+
* loggedIn: (ctx, next) => ({ logout: () => next({ tag: 'idle' }) })
|
|
72
|
+
* });
|
|
73
|
+
*
|
|
74
|
+
* const m = auth({ tag: 'idle' });
|
|
75
|
+
* const next = m.login(); // Transition to loggedIn state
|
|
76
|
+
*/
|
|
77
|
+
/**
|
|
78
|
+
* Creates a union factory that routes to different transition factories based on a tag.
|
|
79
|
+
* This is the primary way to define multi-state machines (Type-States) in the minimal API.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* const auth = union<AuthState>()({
|
|
83
|
+
* idle: (ctx, next) => ({ login: () => next({ tag: 'loggedIn', user: 'alice' }) }),
|
|
84
|
+
* loggedIn: (ctx, next) => ({ logout: () => next({ tag: 'idle' }) })
|
|
85
|
+
* });
|
|
86
|
+
*
|
|
87
|
+
* const m = auth({ tag: 'idle' });
|
|
88
|
+
* const next = m.login(); // Transition to loggedIn state
|
|
89
|
+
*/
|
|
90
|
+
export declare function union<C extends Tagged>(): <F extends { [K in TagOf<C>]: (ctx: Extract<C, {
|
|
91
|
+
tag: K;
|
|
92
|
+
}>, next: (c: C) => any) => any; }>(factories: F) => <T extends C>(context: T) => { [K in TagOf<C> & keyof F]: F[K] extends (ctx: any, next: any) => infer T_1 ? Extract<C, {
|
|
93
|
+
tag: K;
|
|
94
|
+
}> & T_1 : never; }[T["tag"] & TagOf<C> & keyof F];
|
|
95
|
+
//# sourceMappingURL=minimal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimal.d.ts","sourceRoot":"","sources":["../../src/minimal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Utility types for the machine library.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the context type from a machine (works with regular and minimal machines).
|
|
6
|
+
*/
|
|
7
|
+
export type Context<M> = M extends {
|
|
8
|
+
readonly context: infer C;
|
|
9
|
+
} ? C : M;
|
|
10
|
+
/**
|
|
11
|
+
* Extracts the transitions type from a machine (works with regular and minimal machines).
|
|
12
|
+
*/
|
|
13
|
+
export type Transitions<M> = M extends {
|
|
14
|
+
readonly context: any;
|
|
15
|
+
} & infer T ? T : M;
|
|
16
|
+
/**
|
|
17
|
+
* A discriminated union type representing an event that can be dispatched to a machine.
|
|
18
|
+
*/
|
|
19
|
+
export type Tagged<T extends string = string> = {
|
|
20
|
+
readonly tag: T;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Extracts the tag literal type from a tagged object.
|
|
24
|
+
*/
|
|
25
|
+
export type TagOf<T extends Tagged> = T['tag'];
|
|
26
|
+
/**
|
|
27
|
+
* Cleanup function returned from onEnter.
|
|
28
|
+
*/
|
|
29
|
+
export type Cleanup = () => void;
|
|
30
|
+
/**
|
|
31
|
+
* Extracts the return type from a factory function.
|
|
32
|
+
* @example
|
|
33
|
+
* const factory = () => machine({ count: 0 }, { ... });
|
|
34
|
+
* type MyMachine = InferMachine<typeof factory>;
|
|
35
|
+
*/
|
|
36
|
+
export type InferMachine<F extends (...args: any[]) => any> = ReturnType<F>;
|
|
37
|
+
/**
|
|
38
|
+
* Alias for InferMachine, more descriptive for state machine contexts.
|
|
39
|
+
*/
|
|
40
|
+
export type MachineOf<F extends (...args: any[]) => any> = InferMachine<F>;
|
|
41
|
+
/**
|
|
42
|
+
* Creates a tagged object or adds a tag to an existing object.
|
|
43
|
+
*/
|
|
44
|
+
export declare function tag<T extends string>(name: T): {
|
|
45
|
+
tag: T;
|
|
46
|
+
};
|
|
47
|
+
export declare function tag<T extends string, O extends object>(name: T, props: O): {
|
|
48
|
+
tag: T;
|
|
49
|
+
} & O;
|
|
50
|
+
export declare function tag<const T extends {
|
|
51
|
+
tag: string;
|
|
52
|
+
}>(obj: T): T;
|
|
53
|
+
/**
|
|
54
|
+
* Type guard to check if a machine or object is in a specific state.
|
|
55
|
+
*/
|
|
56
|
+
export declare function isState<M extends Tagged, Tag extends TagOf<M>>(machine: M, tagValue: Tag): machine is Extract<M, {
|
|
57
|
+
tag: Tag;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Recursively freezes an object and its properties.
|
|
61
|
+
*/
|
|
62
|
+
export declare function freeze<T extends object>(obj: T): Readonly<T>;
|
|
63
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;CAAE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAE3E;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG;IAAE,GAAG,EAAE,CAAC,CAAA;CAAE,CAAC;AAC3D,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG;IAAE,GAAG,EAAE,CAAC,CAAA;CAAE,GAAG,CAAC,CAAC;AAC3F,wBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAchE;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,EAC5D,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,GAAG,GACZ,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC,CAErC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAU5D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doeixd/machine",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"src"
|
|
@@ -125,6 +125,24 @@
|
|
|
125
125
|
"require": "./dist/cjs/production/extract.js",
|
|
126
126
|
"import": "./dist/esm/production/extract.js"
|
|
127
127
|
},
|
|
128
|
+
"./minimal": {
|
|
129
|
+
"types": "./dist/types/minimal.d.ts",
|
|
130
|
+
"development": {
|
|
131
|
+
"require": "./dist/cjs/development/minimal.js",
|
|
132
|
+
"import": "./dist/esm/development/minimal.js"
|
|
133
|
+
},
|
|
134
|
+
"require": "./dist/cjs/production/minimal.js",
|
|
135
|
+
"import": "./dist/esm/production/minimal.js"
|
|
136
|
+
},
|
|
137
|
+
"./delegate": {
|
|
138
|
+
"types": "./dist/types/delegate.d.ts",
|
|
139
|
+
"development": {
|
|
140
|
+
"require": "./dist/cjs/development/delegate.js",
|
|
141
|
+
"import": "./dist/esm/development/delegate.js"
|
|
142
|
+
},
|
|
143
|
+
"require": "./dist/cjs/production/delegate.js",
|
|
144
|
+
"import": "./dist/esm/production/delegate.js"
|
|
145
|
+
},
|
|
128
146
|
"./react": {
|
|
129
147
|
"types": "./dist/types/entry-react.d.ts",
|
|
130
148
|
"development": {
|
|
@@ -143,6 +161,12 @@
|
|
|
143
161
|
"extract": [
|
|
144
162
|
"./dist/types/extract.d.ts"
|
|
145
163
|
],
|
|
164
|
+
"minimal": [
|
|
165
|
+
"./dist/types/minimal.d.ts"
|
|
166
|
+
],
|
|
167
|
+
"delegate": [
|
|
168
|
+
"./dist/types/delegate.d.ts"
|
|
169
|
+
],
|
|
146
170
|
"react": [
|
|
147
171
|
"./dist/types/entry-react.d.ts"
|
|
148
172
|
]
|
package/src/base.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Base class for machine implementations
|
|
3
|
+
* @description This file contains the MachineBase class, which is the foundation
|
|
4
|
+
* for creating state machines using an Object-Oriented style. This is separated
|
|
5
|
+
* to avoid circular dependencies with higher-order abstractions.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* An optional base class for creating machines using an Object-Oriented style.
|
|
10
|
+
*
|
|
11
|
+
* This class provides the fundamental structure required by the library: a `context`
|
|
12
|
+
* property to hold the state. By extending `MachineBase`, you get a clear and
|
|
13
|
+
* type-safe starting point for defining states and transitions as classes and methods.
|
|
14
|
+
*
|
|
15
|
+
* Transitions should be implemented as methods that return a new instance of a
|
|
16
|
+
* state machine class (often `new MyClass(...)` or by using a `createMachineBuilder`).
|
|
17
|
+
* The `context` is marked `readonly` to enforce the immutable update pattern.
|
|
18
|
+
*
|
|
19
|
+
* @template C - The context object type that defines the state for this machine.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* // Define a simple counter state
|
|
23
|
+
* class Counter extends MachineBase<{ readonly count: number }> {
|
|
24
|
+
* constructor(count = 0) {
|
|
25
|
+
* super({ count });
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* increment(): Counter {
|
|
29
|
+
* // Return a new instance for the next state
|
|
30
|
+
* return new Counter(this.context.count + 1);
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* add(n: number): Counter {
|
|
34
|
+
* return new Counter(this.context.count + n);
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* const machine = new Counter(5);
|
|
39
|
+
* const nextState = machine.increment(); // Returns a new Counter instance
|
|
40
|
+
*
|
|
41
|
+
* console.log(machine.context.count); // 5 (original is unchanged)
|
|
42
|
+
* console.log(nextState.context.count); // 6 (new state)
|
|
43
|
+
*/
|
|
44
|
+
export class MachineBase<C extends object> {
|
|
45
|
+
/**
|
|
46
|
+
* The immutable state of the machine.
|
|
47
|
+
* To change the state, a transition method must return a new machine instance
|
|
48
|
+
* with a new context object.
|
|
49
|
+
*/
|
|
50
|
+
public readonly context: C;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Initializes a new machine instance with its starting context.
|
|
54
|
+
* @param context - The initial state of the machine.
|
|
55
|
+
*/
|
|
56
|
+
constructor(context: C) {
|
|
57
|
+
this.context = context;
|
|
58
|
+
// Object.freeze can provide additional runtime safety against accidental mutation,
|
|
59
|
+
// though it comes with a minor performance cost. It's a good practice for ensuring purity.
|
|
60
|
+
// Object.freeze(this.context);
|
|
61
|
+
}
|
|
62
|
+
}
|