@doeixd/machine 0.0.23 → 1.0.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/README.md +101 -65
- package/dist/cjs/development/core.js +19 -45
- package/dist/cjs/development/core.js.map +3 -3
- package/dist/cjs/development/index.js +51 -46
- package/dist/cjs/development/index.js.map +4 -4
- package/dist/cjs/development/react.js +19 -46
- package/dist/cjs/development/react.js.map +3 -3
- package/dist/cjs/production/core.js +1 -1
- package/dist/cjs/production/index.js +3 -3
- package/dist/cjs/production/react.js +1 -1
- package/dist/esm/development/core.js +19 -45
- package/dist/esm/development/core.js.map +3 -3
- package/dist/esm/development/index.js +51 -46
- package/dist/esm/development/index.js.map +4 -4
- package/dist/esm/development/react.js +19 -46
- package/dist/esm/development/react.js.map +3 -3
- package/dist/esm/production/core.js +1 -1
- package/dist/esm/production/index.js +3 -3
- package/dist/esm/production/react.js +1 -1
- package/dist/types/actor.d.ts +4 -4
- package/dist/types/actor.d.ts.map +1 -1
- package/dist/types/context-bound.d.ts +94 -0
- package/dist/types/context-bound.d.ts.map +1 -0
- package/dist/types/entry-react.d.ts +1 -1
- package/dist/types/entry-react.d.ts.map +1 -1
- package/dist/types/functional-combinators.d.ts +5 -5
- package/dist/types/generators.d.ts +2 -2
- package/dist/types/index.d.ts +14 -29
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/primitives.d.ts +25 -5
- package/dist/types/primitives.d.ts.map +1 -1
- package/dist/types/react.d.ts.map +1 -1
- package/dist/types/utils.d.ts +22 -22
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/actor.ts +1 -1
- package/src/context-bound.ts +147 -0
- package/src/entry-react.ts +9 -2
- package/src/functional-combinators.ts +5 -5
- package/src/generators.ts +2 -2
- package/src/higher-order.ts +2 -2
- package/src/index.ts +31 -68
- package/src/middleware/time-travel.ts +2 -2
- package/src/middleware.ts +2 -2
- package/src/multi.ts +4 -4
- package/src/primitives.ts +34 -14
- package/src/prototype_functional.ts +2 -2
- package/src/react.ts +1 -2
- package/src/test.ts +7 -7
- package/src/utils.ts +31 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-react.d.ts","sourceRoot":"","sources":["../../src/entry-react.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,QAAQ,CAAC;AAGvB,
|
|
1
|
+
{"version":3,"file":"entry-react.d.ts","sourceRoot":"","sources":["../../src/entry-react.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,QAAQ,CAAC;AAGvB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
|
|
@@ -20,7 +20,7 @@ import { Machine, BaseMachine } from './index';
|
|
|
20
20
|
* // Define your machine's transitions object
|
|
21
21
|
* const counterTransitions = {
|
|
22
22
|
* increment: function(amount: number) {
|
|
23
|
-
* return createMachine({ count: this.count + amount }, counterTransitions);
|
|
23
|
+
* return createMachine({ count: this.context.count + amount }, counterTransitions);
|
|
24
24
|
* }
|
|
25
25
|
* };
|
|
26
26
|
*
|
|
@@ -59,7 +59,7 @@ export declare function createTransitionFactory<C extends object>(): <TArgs exte
|
|
|
59
59
|
* // Start with a basic counter machine
|
|
60
60
|
* const basicCounter = createMachine({ count: 0 }, {
|
|
61
61
|
* increment: function() {
|
|
62
|
-
* return createMachine({ count: this.count + 1 }, this);
|
|
62
|
+
* return createMachine({ count: this.context.count + 1 }, this);
|
|
63
63
|
* }
|
|
64
64
|
* });
|
|
65
65
|
*
|
|
@@ -120,7 +120,7 @@ export declare function createFunctionalMachine<C extends object>(initialContext
|
|
|
120
120
|
* 1. **Traditional Pattern** (with transitions object):
|
|
121
121
|
* ```typescript
|
|
122
122
|
* const machine = state({ count: 0 }, {
|
|
123
|
-
* increment() { return createMachine({ count: this.count + 1 }, this); }
|
|
123
|
+
* increment() { return createMachine({ count: this.context.count + 1 }, this); }
|
|
124
124
|
* });
|
|
125
125
|
* ```
|
|
126
126
|
*
|
|
@@ -152,8 +152,8 @@ export declare function createFunctionalMachine<C extends object>(initialContext
|
|
|
152
152
|
* ```typescript
|
|
153
153
|
* // Traditional pattern
|
|
154
154
|
* const counter1 = state({ count: 0 }, {
|
|
155
|
-
* increment() { return createMachine({ count: this.count + 1 }, this); },
|
|
156
|
-
* decrement() { return createMachine({ count: this.count - 1 }, this); }
|
|
155
|
+
* increment() { return createMachine({ count: this.context.count + 1 }, this); },
|
|
156
|
+
* decrement() { return createMachine({ count: this.context.count - 1 }, this); }
|
|
157
157
|
* });
|
|
158
158
|
*
|
|
159
159
|
* // Functional pattern
|
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
* ```typescript
|
|
56
56
|
* const counter = createMachine({ count: 0 }, {
|
|
57
57
|
* increment: function() {
|
|
58
|
-
* return createMachine({ count: this.count + 1 }, this);
|
|
58
|
+
* return createMachine({ count: this.context.count + 1 }, this);
|
|
59
59
|
* },
|
|
60
60
|
* add: function(n: number) {
|
|
61
|
-
* return createMachine({ count: this.count + n }, this);
|
|
61
|
+
* return createMachine({ count: this.context.count + n }, this);
|
|
62
62
|
* }
|
|
63
63
|
* });
|
|
64
64
|
*
|
package/dist/types/index.d.ts
CHANGED
|
@@ -161,12 +161,12 @@ export type Event<M extends BaseMachine<any>> = {
|
|
|
161
161
|
* const counterTransitions = {
|
|
162
162
|
* increment() {
|
|
163
163
|
* // `this` is now fully typed!
|
|
164
|
-
* // IntelliSense knows `this.count` is a number and
|
|
164
|
+
* // IntelliSense knows `this.context.count` is a number and
|
|
165
165
|
* // `this.transitions.add` is a function.
|
|
166
|
-
* return createMachine({ count: this.count + 1 }, this.transitions);
|
|
166
|
+
* return createMachine({ count: this.context.count + 1 }, this.transitions);
|
|
167
167
|
* },
|
|
168
168
|
* add(n: number) {
|
|
169
|
-
* return createMachine({ count: this.count + n }, this.transitions);
|
|
169
|
+
* return createMachine({ count: this.context.count + n }, this.transitions);
|
|
170
170
|
* },
|
|
171
171
|
* // ❌ TypeScript will immediately throw a compile error on the next line
|
|
172
172
|
* // because the return type 'string' does not satisfy 'Machine<any>'.
|
|
@@ -183,18 +183,14 @@ export type Event<M extends BaseMachine<any>> = {
|
|
|
183
183
|
* }
|
|
184
184
|
*/
|
|
185
185
|
export type TransitionsFor<C extends object, T extends Record<string, any>> = {
|
|
186
|
-
[K in keyof T]: (this: C
|
|
187
|
-
transitions: T;
|
|
188
|
-
}, ...args: Parameters<T[K] extends (...a: infer A) => any ? (...a: A) => any : never>) => Machine<any, any>;
|
|
186
|
+
[K in keyof T]: (this: Machine<C, T>, ...args: Parameters<T[K] extends (...a: infer A) => any ? (...a: A) => any : never>) => Machine<any, any>;
|
|
189
187
|
};
|
|
190
188
|
/**
|
|
191
189
|
* A helper type for use with the `satisfies` operator to provide strong
|
|
192
190
|
* type-checking for standalone asynchronous transition objects.
|
|
193
191
|
*/
|
|
194
192
|
export type AsyncTransitionsFor<C extends object, T extends Record<string, any>> = {
|
|
195
|
-
[K in keyof T]: (this: C
|
|
196
|
-
transitions: T;
|
|
197
|
-
}, ...args: Parameters<T[K] extends (...a: infer A) => any ? (...a: A) => any : never>) => MaybePromise<AsyncMachine<any, any>>;
|
|
193
|
+
[K in keyof T]: (this: Machine<C, T>, ...args: Parameters<T[K] extends (...a: infer A) => any ? (...a: A) => any : never>) => MaybePromise<AsyncMachine<any, any>>;
|
|
198
194
|
};
|
|
199
195
|
/**
|
|
200
196
|
* A mapped type that iterates over a transitions object `T` and keeps only the
|
|
@@ -293,23 +289,21 @@ export type BindTransitions<T> = {
|
|
|
293
289
|
* @param factory - A function that receives a `transition` helper and returns the transitions object.
|
|
294
290
|
* @returns A new machine instance.
|
|
295
291
|
*/
|
|
296
|
-
export declare function createMachine<C extends object, T extends Record<string, (this: C, ...args: any[]) => any> = Record<string, (this: C, ...args: any[]) => any>>(context: C, factory: (transition: (newContext: C) => Machine<C, any>) => T): Machine<C,
|
|
292
|
+
export declare function createMachine<C extends object, T extends Record<string, (this: Machine<C, any>, ...args: any[]) => any> = Record<string, (this: Machine<C, any>, ...args: any[]) => any>>(context: C, factory: (transition: (newContext: C) => Machine<C, any>) => T): Machine<C, T>;
|
|
297
293
|
/**
|
|
298
294
|
* Creates a synchronous state machine from a context and transition functions.
|
|
299
295
|
* This is the core factory for the functional approach.
|
|
296
|
+
* Transitions receive the full machine as `this`, allowing them to access
|
|
297
|
+
* `this.context` and call other transitions via `this.otherTransition()`.
|
|
300
298
|
*
|
|
301
299
|
* @template C - The context object type.
|
|
302
300
|
* @param context - The initial state context.
|
|
303
301
|
* @param fns - An object containing transition function definitions.
|
|
304
302
|
* @returns A new machine instance.
|
|
305
303
|
*/
|
|
306
|
-
export declare function createMachine<C extends object, T extends Record<string, (this: {
|
|
307
|
-
context: C;
|
|
308
|
-
} & T, ...args: any[]) => any> & {
|
|
304
|
+
export declare function createMachine<C extends object, T extends Record<string, (this: Machine<C, T>, ...args: any[]) => any> & {
|
|
309
305
|
context?: any;
|
|
310
|
-
}>(context: C, fns: T):
|
|
311
|
-
context: C;
|
|
312
|
-
} & T;
|
|
306
|
+
}>(context: C, fns: T): Machine<C, T>;
|
|
313
307
|
/**
|
|
314
308
|
* Creates a synchronous state machine by copying context and transitions from an existing machine.
|
|
315
309
|
* This is useful for creating a new machine with updated context but the same transitions.
|
|
@@ -321,16 +315,6 @@ export declare function createMachine<C extends object, T extends Record<string,
|
|
|
321
315
|
* @returns A new machine instance with the given context and copied transitions.
|
|
322
316
|
*/
|
|
323
317
|
export declare function createMachine<C extends object, M extends BaseMachine<C>>(context: C, machine: M): Machine<C, Transitions<M>>;
|
|
324
|
-
/**
|
|
325
|
-
* Creates a synchronous state machine from a context and transition functions that expect `this` to be the context object.
|
|
326
|
-
* This is used internally by utilities that need to bind transitions to context objects.
|
|
327
|
-
*
|
|
328
|
-
* @template C - The context object type.
|
|
329
|
-
* @param context - The initial state context.
|
|
330
|
-
* @param fns - An object containing transition function definitions that expect `this` to be the context.
|
|
331
|
-
* @returns A new machine instance.
|
|
332
|
-
*/
|
|
333
|
-
export declare function createMachine<C extends object, T extends Record<string, (this: C, ...args: any[]) => any>>(context: C, fns: T): Machine<C, T>;
|
|
334
318
|
/**
|
|
335
319
|
* Creates an asynchronous state machine from a context and a factory function.
|
|
336
320
|
* This "Functional Builder" pattern allows for type-safe transitions without
|
|
@@ -467,14 +451,14 @@ export declare function extendTransitions<M extends Machine<any>, T extends Reco
|
|
|
467
451
|
* // Define two independent machines
|
|
468
452
|
* const createCounter = (initial: number) =>
|
|
469
453
|
* createMachine({ count: initial }, {
|
|
470
|
-
* increment: function() { return createMachine({ count: this.count + 1 }, this); },
|
|
471
|
-
* decrement: function() { return createMachine({ count: this.count - 1 }, this); }
|
|
454
|
+
* increment: function() { return createMachine({ count: this.context.count + 1 }, this); },
|
|
455
|
+
* decrement: function() { return createMachine({ count: this.context.count - 1 }, this); }
|
|
472
456
|
* });
|
|
473
457
|
*
|
|
474
458
|
* const createLogger = () =>
|
|
475
459
|
* createMachine({ logs: [] as string[] }, {
|
|
476
460
|
* log: function(message: string) {
|
|
477
|
-
* return createMachine({ logs: [...this.logs, message] }, this);
|
|
461
|
+
* return createMachine({ logs: [...this.context.logs, message] }, this);
|
|
478
462
|
* },
|
|
479
463
|
* clear: function() {
|
|
480
464
|
* return createMachine({ logs: [] }, this);
|
|
@@ -680,4 +664,5 @@ export { isState, createEvent, createTransition, mergeContext, pipeTransitions,
|
|
|
680
664
|
export { createTransitionFactory, createTransitionExtender, createFunctionalMachine, state } from './functional-combinators';
|
|
681
665
|
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';
|
|
682
666
|
export { Actor, createActor, spawn, fromPromise, fromObservable, type ActorRef, type InspectionEvent } from './actor';
|
|
667
|
+
export { createContextBoundMachine, callWithContext, isContextBound, type ContextBoundMachine } from './context-bound';
|
|
683
668
|
//# 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":"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"}
|
|
@@ -218,6 +218,14 @@ export type GuardedTransition<C extends object, TSuccess extends Machine<any>, T
|
|
|
218
218
|
* Creates a synchronous runtime guard that checks conditions before executing transitions.
|
|
219
219
|
* This provides actual runtime protection with synchronous execution - use this for the majority of cases.
|
|
220
220
|
*
|
|
221
|
+
* **IMPORTANT - Context-Bound Limitation:**
|
|
222
|
+
* Guards accept calls with either `this === machine` or `this === context`, but when called
|
|
223
|
+
* with context-only binding, the guard normalizes to `{ context }` before passing to the transition.
|
|
224
|
+
* This means:
|
|
225
|
+
* - ✅ Transitions can access `this.context`
|
|
226
|
+
* - ❌ Transitions CANNOT call `this.otherTransition()` (no transitions property)
|
|
227
|
+
* - Recommended: Use guards only with machine-bound transitions for full composition support
|
|
228
|
+
*
|
|
221
229
|
* @template C - The context type
|
|
222
230
|
* @template TSuccess - The transition return type when condition passes
|
|
223
231
|
* @template TFailure - The fallback return type when condition fails (defaults to Machine<C>)
|
|
@@ -231,8 +239,10 @@ export type GuardedTransition<C extends object, TSuccess extends Machine<any>, T
|
|
|
231
239
|
* const machine = createMachine({ balance: 100 }, {
|
|
232
240
|
* withdraw: guard(
|
|
233
241
|
* (ctx, amount) => ctx.balance >= amount,
|
|
234
|
-
* function(amount: number) {
|
|
235
|
-
*
|
|
242
|
+
* function(this: Machine<{balance: number}>, amount: number) {
|
|
243
|
+
* // ✅ Can access this.context
|
|
244
|
+
* return createMachine({ balance: this.context.balance - amount }, this);
|
|
245
|
+
* // ❌ Cannot call this.otherTransition() if guard was called with context-only binding
|
|
236
246
|
* },
|
|
237
247
|
* { onFail: 'throw', errorMessage: 'Insufficient funds' }
|
|
238
248
|
* )
|
|
@@ -248,6 +258,14 @@ export declare function guard<C extends object, TSuccess extends Machine<any>, T
|
|
|
248
258
|
* This provides actual runtime protection, unlike the `guarded` primitive which only adds metadata.
|
|
249
259
|
* Use this when your condition or transition logic is asynchronous.
|
|
250
260
|
*
|
|
261
|
+
* **IMPORTANT - Context-Bound Limitation:**
|
|
262
|
+
* Guards accept calls with either `this === machine` or `this === context`, but when called
|
|
263
|
+
* with context-only binding, the guard normalizes to `{ context }` before passing to the transition.
|
|
264
|
+
* This means:
|
|
265
|
+
* - ✅ Transitions can access `this.context`
|
|
266
|
+
* - ❌ Transitions CANNOT call `this.otherTransition()` (no transitions property)
|
|
267
|
+
* - Recommended: Use guards only with machine-bound transitions for full composition support
|
|
268
|
+
*
|
|
251
269
|
* @template C - The context type
|
|
252
270
|
* @template TSuccess - The transition return type when condition passes
|
|
253
271
|
* @template TFailure - The fallback return type when condition fails (defaults to Machine<C>)
|
|
@@ -265,10 +283,12 @@ export declare function guard<C extends object, TSuccess extends Machine<any>, T
|
|
|
265
283
|
* await new Promise(resolve => setTimeout(resolve, 100));
|
|
266
284
|
* return ctx.balance >= amount;
|
|
267
285
|
* },
|
|
268
|
-
* async function(amount: number) {
|
|
286
|
+
* async function(this: Machine<{balance: number}>, amount: number) {
|
|
269
287
|
* // Simulate API call to process withdrawal
|
|
270
288
|
* await new Promise(resolve => setTimeout(resolve, 100));
|
|
271
|
-
*
|
|
289
|
+
* // ✅ Can access this.context
|
|
290
|
+
* return createMachine({ balance: this.context.balance - amount }, this);
|
|
291
|
+
* // ❌ Cannot call this.otherTransition() if guard was called with context-only binding
|
|
272
292
|
* },
|
|
273
293
|
* { onFail: 'throw', errorMessage: 'Insufficient funds' }
|
|
274
294
|
* )
|
|
@@ -297,7 +317,7 @@ export declare function guardAsync<C extends object, TSuccess extends Machine<an
|
|
|
297
317
|
* withdraw: guardSync(
|
|
298
318
|
* (ctx, amount) => ctx.balance >= amount,
|
|
299
319
|
* function(amount: number) {
|
|
300
|
-
* return createMachine({ balance: this.balance - amount }, this);
|
|
320
|
+
* return createMachine({ balance: this.context.balance - amount }, this);
|
|
301
321
|
* },
|
|
302
322
|
* { onFail: 'throw', errorMessage: 'Insufficient funds' }
|
|
303
323
|
* )
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/primitives.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/primitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/react.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,OAAO,EACP,UAAU,EAEV,KAAK,QAAQ,EAEb,KAAK,KAAK,EACV,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAM9E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAC/C,cAAc,EAAE,MAAM,CAAC,GACtB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAwB/C;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAC1D,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EACzB,OAAO,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAmB,GAC3C,CAAC,CAmBH;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAEpD,cAAc,EAAE,CAAC,EACjB,SAAS,EAAE,CAAC,EACZ,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,GACvC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAyBrC;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC;gDAQtD;QACD,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;QAClD,QAAQ,EAAE,SAAS,CAAC;KACrB,yGAXuD,GAAG,EAAE,KAAK,IAAI;0DAAd,GAAG,EAAE,KAAK,IAAI;2BAyB1C,CAAC;6BACC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;kBAEjD,CAAC,YACV,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,YACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,KAChC,CAAC;EAYL;AAMD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAMvE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAC5D,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EACzB,OAAO,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAmB,GAC3C,CAAC,
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/react.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,OAAO,EACP,UAAU,EAEV,KAAK,QAAQ,EAEb,KAAK,KAAK,EACV,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAM9E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAC/C,cAAc,EAAE,MAAM,CAAC,GACtB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAwB/C;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAC1D,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EACzB,OAAO,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAmB,GAC3C,CAAC,CAmBH;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAEpD,cAAc,EAAE,CAAC,EACjB,SAAS,EAAE,CAAC,EACZ,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,GACvC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAyBrC;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC;gDAQtD;QACD,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;QAClD,QAAQ,EAAE,SAAS,CAAC;KACrB,yGAXuD,GAAG,EAAE,KAAK,IAAI;0DAAd,GAAG,EAAE,KAAK,IAAI;2BAyB1C,CAAC;6BACC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;kBAEjD,CAAC,YACV,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,YACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,KAChC,CAAC;EAYL;AAMD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAMvE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAC5D,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EACzB,OAAO,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAmB,GAC3C,CAAC,CA+BH"}
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -159,47 +159,47 @@ export declare function logState<M extends Machine<any>>(machine: M, label?: str
|
|
|
159
159
|
* preserving all transitions while updating only the context.
|
|
160
160
|
* The getTransitions function is called lazily to avoid circular reference issues.
|
|
161
161
|
*/
|
|
162
|
-
export declare function createTransition<C extends object, TArgs extends any[]>(getTransitions: () => Record<string, (this: C, ...args: any[]) => any>, transformer: (ctx: C, ...args: TArgs) => C): (this: {
|
|
162
|
+
export declare function createTransition<C extends object, TArgs extends any[]>(getTransitions: () => Record<string, (this: Machine<C, any>, ...args: any[]) => any>, transformer: (ctx: C, ...args: TArgs) => C): (this: {
|
|
163
163
|
context: C;
|
|
164
164
|
}, ...args: TArgs) => Machine<C>;
|
|
165
165
|
/**
|
|
166
|
-
* Calls a transition function with an explicit `this`
|
|
167
|
-
* Useful for invoking transition methods with proper
|
|
166
|
+
* Calls a transition function with an explicit `this` binding.
|
|
167
|
+
* Useful for invoking transition methods with proper machine binding.
|
|
168
168
|
*
|
|
169
|
-
* @template
|
|
169
|
+
* @template M - The machine type that the function expects as `this`.
|
|
170
170
|
* @template F - The function type with a `this` parameter.
|
|
171
171
|
* @template A - The argument types for the function.
|
|
172
172
|
* @param fn - The transition function to call.
|
|
173
|
-
* @param
|
|
173
|
+
* @param machine - The machine object to bind as `this`.
|
|
174
174
|
* @param args - Arguments to pass to the function.
|
|
175
|
-
* @returns The result of calling the function with the given
|
|
175
|
+
* @returns The result of calling the function with the given machine and arguments.
|
|
176
176
|
*
|
|
177
177
|
* @example
|
|
178
|
-
* type
|
|
179
|
-
* const increment = function(this:
|
|
180
|
-
* const result = call(increment,
|
|
178
|
+
* type MyMachine = Machine<{ count: number }>;
|
|
179
|
+
* const increment = function(this: MyMachine) { return createMachine({ count: this.context.count + 1 }, this); };
|
|
180
|
+
* const result = call(increment, machine); // Returns new machine
|
|
181
181
|
*
|
|
182
182
|
* // Particularly useful with machine transitions:
|
|
183
183
|
* import { call } from '@doeixd/machine/utils';
|
|
184
|
-
* const nextMachine = yield* step(call(m.increment, m
|
|
184
|
+
* const nextMachine = yield* step(call(m.increment, m));
|
|
185
185
|
*/
|
|
186
|
-
export declare function call<
|
|
186
|
+
export declare function call<M extends Machine<any>, F extends (this: M, ...args: any[]) => any>(fn: F, machine: M, ...args: Parameters<F> extends [any, ...infer Rest] ? Rest : never): ReturnType<F>;
|
|
187
187
|
/**
|
|
188
|
-
* Binds all transition methods of a machine to
|
|
189
|
-
* Returns a Proxy that intercepts method calls and binds them to
|
|
190
|
-
* This eliminates the need to use `.call(m
|
|
188
|
+
* Binds all transition methods of a machine to the machine itself automatically.
|
|
189
|
+
* Returns a Proxy that intercepts method calls and binds them to the full machine.
|
|
190
|
+
* This eliminates the need to use `.call(m, ...)` for every transition.
|
|
191
191
|
*
|
|
192
192
|
* Automatically recursively wraps returned machines, enabling seamless chaining
|
|
193
193
|
* in generator-based flows.
|
|
194
194
|
*
|
|
195
195
|
* @template M - The machine type with a `context` property and transition methods.
|
|
196
196
|
* @param machine - The machine instance to wrap.
|
|
197
|
-
* @returns A Proxy of the machine where all callable properties (transitions) are automatically bound to the machine
|
|
197
|
+
* @returns A Proxy of the machine where all callable properties (transitions) are automatically bound to the machine.
|
|
198
198
|
*
|
|
199
199
|
* @example
|
|
200
|
-
* type
|
|
200
|
+
* type CounterMachine = Machine<{ count: number }>;
|
|
201
201
|
* const counter = bindTransitions(createMachine({ count: 0 }, {
|
|
202
|
-
* increment(this:
|
|
202
|
+
* increment(this: CounterMachine) { return createMachine({ count: this.context.count + 1 }, this); }
|
|
203
203
|
* }));
|
|
204
204
|
*
|
|
205
205
|
* // Now you can call transitions directly without .call():
|
|
@@ -215,28 +215,28 @@ export declare function call<C, F extends (this: C, ...args: any[]) => any>(fn:
|
|
|
215
215
|
* @remarks
|
|
216
216
|
* The Proxy preserves all original properties and methods. Non-callable properties
|
|
217
217
|
* are accessed directly from the machine. Callable properties are wrapped to bind
|
|
218
|
-
* them to
|
|
218
|
+
* them to the machine before invocation. Returned machines are automatically
|
|
219
219
|
* re-wrapped to maintain binding across transition chains.
|
|
220
220
|
*/
|
|
221
221
|
export declare function bindTransitions<M extends {
|
|
222
222
|
context: any;
|
|
223
223
|
}>(machine: M): M;
|
|
224
224
|
/**
|
|
225
|
-
* A strongly-typed wrapper class for binding transitions to machine
|
|
225
|
+
* A strongly-typed wrapper class for binding transitions to the machine.
|
|
226
226
|
* Unlike the Proxy-based `bindTransitions`, this class preserves full type safety
|
|
227
227
|
* and provides better IDE support through explicit property forwarding.
|
|
228
228
|
*
|
|
229
229
|
* @template M - The machine type with a `context` property and transition methods.
|
|
230
230
|
*
|
|
231
231
|
* @example
|
|
232
|
-
* type
|
|
232
|
+
* type CounterMachine = Machine<{ count: number }>;
|
|
233
233
|
* const counter = createMachine({ count: 0 }, {
|
|
234
|
-
* increment(this:
|
|
234
|
+
* increment(this: CounterMachine) { return createMachine({ count: this.context.count + 1 }, this); }
|
|
235
235
|
* });
|
|
236
236
|
*
|
|
237
237
|
* const bound = new BoundMachine(counter);
|
|
238
238
|
*
|
|
239
|
-
* // All transitions are automatically bound to
|
|
239
|
+
* // All transitions are automatically bound to machine
|
|
240
240
|
* const result = run(function* (m) {
|
|
241
241
|
* m = yield* step(m.increment());
|
|
242
242
|
* m = yield* step(m.add(5));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,KAAK,EACL,WAAW,EACX,cAAc,EAGf,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,KAAK,gBAAgB,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAEpD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,gBAAgB,EAChD,OAAO,EAAE,GAAG,EACZ,YAAY,EAAE,CAAC,GACd,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CAE5B;AAOD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CACzB,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACtB,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EACvC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAElD;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EACjD,OAAO,EAAE,CAAC,EACV,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAClC,CAAC,CAEH;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAC/D,cAAc,EAAE,CAAC,EACjB,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,GAC5C,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAO9E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,MAAM,EAChB,KAAK,SAAS,GAAG,EAAE,EAEnB,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/actor.ts
CHANGED
|
@@ -167,7 +167,7 @@ export class Actor<M extends BaseMachine<any>> implements ActorRef<M> {
|
|
|
167
167
|
|
|
168
168
|
let result: MaybePromise<M>;
|
|
169
169
|
try {
|
|
170
|
-
result = fn.apply(this._state
|
|
170
|
+
result = fn.apply(this._state, event.args);
|
|
171
171
|
} catch (error) {
|
|
172
172
|
console.error(`[Actor] Error in transition '${String(event.type)}':`, error);
|
|
173
173
|
continue;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type { Machine, Transitions } from './index';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates a machine where transformers receive context as `this` and return new contexts.
|
|
5
|
+
* The wrapper automatically converts these context-returning functions into proper
|
|
6
|
+
* machine-returning transitions.
|
|
7
|
+
*
|
|
8
|
+
* **Important Limitations:**
|
|
9
|
+
* - Transformers receive ONLY context as `this` (a lightweight `{ context }` object)
|
|
10
|
+
* - Cannot call other transitions via `this.otherTransition()`
|
|
11
|
+
* - Provides cleaner syntax for simple context transformations
|
|
12
|
+
*
|
|
13
|
+
* @template C - The context type
|
|
14
|
+
* @template T - The transformers record mapping transition names to context transformers
|
|
15
|
+
*
|
|
16
|
+
* @param initialContext - The initial context object
|
|
17
|
+
* @param transformers - Record of transition names to pure context transformers.
|
|
18
|
+
* Each transformer receives `this === context` and returns a new context.
|
|
19
|
+
* The public API returns machines, not contexts.
|
|
20
|
+
* @returns A context-bound machine where public transitions return machines,
|
|
21
|
+
* but internal transformers work with contexts directly.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const machine = createContextBoundMachine({ count: 0 }, {
|
|
26
|
+
* increment() {
|
|
27
|
+
* // Inside: `this` is the context object, return new context
|
|
28
|
+
* return { count: this.context.count + 1 };
|
|
29
|
+
* },
|
|
30
|
+
* add(amount: number) {
|
|
31
|
+
* return { count: this.context.count + amount };
|
|
32
|
+
* }
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* // Outside: returns a machine (not just context)
|
|
36
|
+
* const result = machine.increment();
|
|
37
|
+
* console.log(result.context.count); // 1
|
|
38
|
+
*
|
|
39
|
+
* // ❌ CANNOT do this inside transformers:
|
|
40
|
+
* // incrementTwice() { return this.increment().increment(); }
|
|
41
|
+
* // (this.increment doesn't exist - `this` is just the context)
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export function createContextBoundMachine<
|
|
45
|
+
C extends object,
|
|
46
|
+
T extends Record<string, (this: C, ...args: any[]) => C>
|
|
47
|
+
>(
|
|
48
|
+
initialContext: C,
|
|
49
|
+
transformers: T
|
|
50
|
+
): ContextBoundMachine<C, T> {
|
|
51
|
+
// Create a closure to hold the transformers for reuse
|
|
52
|
+
const savedTransformers = transformers;
|
|
53
|
+
|
|
54
|
+
// Create transition functions that bind to context
|
|
55
|
+
const boundTransitions = Object.fromEntries(
|
|
56
|
+
Object.entries(transformers).map(([key, transformer]) => [
|
|
57
|
+
key,
|
|
58
|
+
function (this: Machine<C>, ...args: any[]) {
|
|
59
|
+
// Bind transformer to a context-only object ({ context })
|
|
60
|
+
const contextOnly = { context: this.context } as Pick<Machine<C>, 'context'>;
|
|
61
|
+
const newContext = transformer.apply(contextOnly as any, args);
|
|
62
|
+
// Return new machine with same transformers
|
|
63
|
+
return createContextBoundMachine(newContext, savedTransformers);
|
|
64
|
+
},
|
|
65
|
+
])
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
return Object.assign({ context: initialContext }, boundTransitions) as any;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Machine type where transitions receive context as `this`.
|
|
73
|
+
*
|
|
74
|
+
* @template C - The context type
|
|
75
|
+
* @template T - The transformers record type
|
|
76
|
+
*/
|
|
77
|
+
export type ContextBoundMachine<
|
|
78
|
+
C extends object,
|
|
79
|
+
T extends Record<string, any>
|
|
80
|
+
> = Machine<
|
|
81
|
+
C,
|
|
82
|
+
{
|
|
83
|
+
[K in keyof T]: (
|
|
84
|
+
...args: Parameters<T[K]>
|
|
85
|
+
) => ContextBoundMachine<C, T>;
|
|
86
|
+
}
|
|
87
|
+
>;
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Helper to call a transition with context binding.
|
|
92
|
+
* Equivalent to `fn.call({ context: machine.context }, ...args)`.
|
|
93
|
+
*
|
|
94
|
+
* @template M - The machine type
|
|
95
|
+
* @template K - The transition name (keyof the transitions)
|
|
96
|
+
*
|
|
97
|
+
* @param machine - The machine instance
|
|
98
|
+
* @param transitionName - The name of the transition to call
|
|
99
|
+
* @param args - Arguments to pass to the transition
|
|
100
|
+
* @returns The result of calling the transition
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* const machine = createMachine({ count: 0 }, {
|
|
105
|
+
* increment(this: {count: number}) {
|
|
106
|
+
* return { count: this.context.count + 1 };
|
|
107
|
+
* }
|
|
108
|
+
* });
|
|
109
|
+
*
|
|
110
|
+
* // Instead of: machine.increment.call(machine.context)
|
|
111
|
+
* const result = callWithContext(machine, 'increment');
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export function callWithContext<M extends Machine<any>>(
|
|
115
|
+
machine: M,
|
|
116
|
+
transitionName: keyof Transitions<M>,
|
|
117
|
+
...args: any[]
|
|
118
|
+
): any {
|
|
119
|
+
const fn = (machine as any)[transitionName];
|
|
120
|
+
const contextOnly = { context: machine.context } as Pick<Machine<any>, 'context'>;
|
|
121
|
+
return fn.apply(contextOnly as any, args);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Type guard to check if a machine is context-bound.
|
|
126
|
+
*
|
|
127
|
+
* @param machine - The machine to check
|
|
128
|
+
* @returns True if the machine was created with createContextBoundMachine
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* const cbMachine = createContextBoundMachine({ count: 0 }, {...});
|
|
133
|
+
* const normalMachine = createMachine({ count: 0 }, {...});
|
|
134
|
+
*
|
|
135
|
+
* isContextBound(cbMachine); // true
|
|
136
|
+
* isContextBound(normalMachine); // false
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export function isContextBound(machine: Machine<any>): boolean {
|
|
140
|
+
const firstTransition = Object.values(machine).find(
|
|
141
|
+
(v) => typeof v === 'function'
|
|
142
|
+
);
|
|
143
|
+
if (!firstTransition) return false;
|
|
144
|
+
|
|
145
|
+
// Context-bound machines have a marker property
|
|
146
|
+
return (firstTransition as any).__contextBound === true;
|
|
147
|
+
}
|