ihsm 0.0.26 → 0.1.21
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 +105 -113
- package/lib/cjs/index.d.ts +8 -1394
- package/lib/cjs/index.js +65 -764
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/internal/console-instrumentation.d.ts +34 -0
- package/lib/cjs/internal/console-instrumentation.js +71 -0
- package/lib/cjs/internal/console-instrumentation.js.map +1 -0
- package/lib/cjs/internal/identity.d.ts +16 -0
- package/lib/cjs/internal/identity.js +170 -0
- package/lib/cjs/internal/identity.js.map +1 -0
- package/lib/cjs/internal/instrumentation.d.ts +47 -0
- package/lib/cjs/internal/instrumentation.js +201 -0
- package/lib/cjs/internal/instrumentation.js.map +1 -0
- package/lib/cjs/internal/runtime.d.ts +376 -0
- package/lib/cjs/internal/runtime.js +2530 -0
- package/lib/cjs/internal/runtime.js.map +1 -0
- package/lib/cjs/internal/types.d.ts +515 -0
- package/lib/cjs/internal/types.js +9 -0
- package/lib/cjs/internal/types.js.map +1 -0
- package/lib/cjs/test-only.d.ts +5 -0
- package/lib/cjs/test-only.js +21 -0
- package/lib/cjs/test-only.js.map +1 -0
- package/lib/cjs/testing.d.ts +120 -88
- package/lib/cjs/testing.js +126 -38
- package/lib/cjs/testing.js.map +1 -1
- package/lib/cjs/transition-routines.d.ts +3 -0
- package/lib/cjs/transition-routines.js +11 -0
- package/lib/cjs/transition-routines.js.map +1 -0
- package/lib/cjs/types.d.ts +5 -0
- package/lib/cjs/{internal/defs.private.js → types.js} +1 -1
- package/lib/cjs/types.js.map +1 -0
- package/lib/esm/index.d.ts +8 -1394
- package/lib/esm/index.js +5 -742
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/internal/console-instrumentation.d.ts +34 -0
- package/lib/esm/internal/console-instrumentation.js +68 -0
- package/lib/esm/internal/console-instrumentation.js.map +1 -0
- package/lib/esm/internal/identity.d.ts +16 -0
- package/lib/esm/internal/identity.js +159 -0
- package/lib/esm/internal/identity.js.map +1 -0
- package/lib/esm/internal/instrumentation.d.ts +47 -0
- package/lib/esm/internal/instrumentation.js +178 -0
- package/lib/esm/internal/instrumentation.js.map +1 -0
- package/lib/esm/internal/runtime.d.ts +376 -0
- package/lib/esm/internal/runtime.js +2462 -0
- package/lib/esm/internal/runtime.js.map +1 -0
- package/lib/esm/internal/types.d.ts +515 -0
- package/lib/esm/internal/types.js +6 -0
- package/lib/esm/internal/types.js.map +1 -0
- package/lib/esm/test-only.d.ts +5 -0
- package/lib/esm/test-only.js +15 -0
- package/lib/esm/test-only.js.map +1 -0
- package/lib/esm/testing.d.ts +120 -88
- package/lib/esm/testing.js +125 -38
- package/lib/esm/testing.js.map +1 -1
- package/lib/esm/transition-routines.d.ts +3 -0
- package/lib/esm/transition-routines.js +3 -0
- package/lib/esm/transition-routines.js.map +1 -0
- package/lib/esm/types.d.ts +5 -0
- package/lib/esm/types.js +2 -0
- package/lib/esm/types.js.map +1 -0
- package/package.json +22 -4
- package/lib/cjs/internal/defs.private.d.ts +0 -41
- package/lib/cjs/internal/defs.private.js.map +0 -1
- package/lib/cjs/internal/dispatch.debug.d.ts +0 -4
- package/lib/cjs/internal/dispatch.debug.js +0 -332
- package/lib/cjs/internal/dispatch.debug.js.map +0 -1
- package/lib/cjs/internal/dispatch.production.d.ts +0 -6
- package/lib/cjs/internal/dispatch.production.js +0 -241
- package/lib/cjs/internal/dispatch.production.js.map +0 -1
- package/lib/cjs/internal/dispatch.trace.d.ts +0 -4
- package/lib/cjs/internal/dispatch.trace.js +0 -418
- package/lib/cjs/internal/dispatch.trace.js.map +0 -1
- package/lib/cjs/internal/hsm.d.ts +0 -60
- package/lib/cjs/internal/hsm.js +0 -215
- package/lib/cjs/internal/hsm.js.map +0 -1
- package/lib/cjs/internal/lookup.d.ts +0 -15
- package/lib/cjs/internal/lookup.js +0 -32
- package/lib/cjs/internal/lookup.js.map +0 -1
- package/lib/cjs/internal/utils.d.ts +0 -26
- package/lib/cjs/internal/utils.js +0 -63
- package/lib/cjs/internal/utils.js.map +0 -1
- package/lib/esm/internal/defs.private.d.ts +0 -41
- package/lib/esm/internal/defs.private.js +0 -2
- package/lib/esm/internal/defs.private.js.map +0 -1
- package/lib/esm/internal/dispatch.debug.d.ts +0 -4
- package/lib/esm/internal/dispatch.debug.js +0 -328
- package/lib/esm/internal/dispatch.debug.js.map +0 -1
- package/lib/esm/internal/dispatch.production.d.ts +0 -6
- package/lib/esm/internal/dispatch.production.js +0 -237
- package/lib/esm/internal/dispatch.production.js.map +0 -1
- package/lib/esm/internal/dispatch.trace.d.ts +0 -4
- package/lib/esm/internal/dispatch.trace.js +0 -414
- package/lib/esm/internal/dispatch.trace.js.map +0 -1
- package/lib/esm/internal/hsm.d.ts +0 -60
- package/lib/esm/internal/hsm.js +0 -211
- package/lib/esm/internal/hsm.js.map +0 -1
- package/lib/esm/internal/lookup.d.ts +0 -15
- package/lib/esm/internal/lookup.js +0 -29
- package/lib/esm/internal/lookup.js.map +0 -1
- package/lib/esm/internal/utils.d.ts +0 -26
- package/lib/esm/internal/utils.js +0 -52
- package/lib/esm/internal/utils.js.map +0 -1
package/lib/esm/internal/hsm.js
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import { TraceLevel, UnhandledEventError } from '../index.js';
|
|
2
|
-
import { createEventDispatchTask as createEventDispatchVerboseDebug, createInitTask as createInitVerboseDebug } from './dispatch.trace.js';
|
|
3
|
-
import { createEventDispatchTask as createEventDispatchDebug, createInitTask as createInitTaskDebug } from './dispatch.debug.js';
|
|
4
|
-
import { createEventDispatchTask as createEventDispatchProduction, createInitTask as createInitTaskProduction } from './dispatch.production.js';
|
|
5
|
-
import { getStateName } from './utils.js';
|
|
6
|
-
function mapInitTaskFactory(traceLevel) {
|
|
7
|
-
switch (traceLevel) {
|
|
8
|
-
case TraceLevel.PRODUCTION:
|
|
9
|
-
return createInitTaskProduction;
|
|
10
|
-
case TraceLevel.DEBUG:
|
|
11
|
-
return createInitTaskDebug;
|
|
12
|
-
case TraceLevel.VERBOSE_DEBUG:
|
|
13
|
-
return createInitVerboseDebug;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function mapEventDispatchTaskFactory(traceLevel) {
|
|
17
|
-
switch (traceLevel) {
|
|
18
|
-
case TraceLevel.PRODUCTION:
|
|
19
|
-
return createEventDispatchProduction;
|
|
20
|
-
case TraceLevel.DEBUG:
|
|
21
|
-
return createEventDispatchDebug;
|
|
22
|
-
case TraceLevel.VERBOSE_DEBUG:
|
|
23
|
-
return createEventDispatchVerboseDebug;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/** @internal */
|
|
27
|
-
// prettier-ignore
|
|
28
|
-
export class HsmObject {
|
|
29
|
-
topState;
|
|
30
|
-
topStateName;
|
|
31
|
-
ctxTypeName;
|
|
32
|
-
traceWriter;
|
|
33
|
-
_instance;
|
|
34
|
-
_transitionCache = new Map();
|
|
35
|
-
_jobs;
|
|
36
|
-
_hiPriorityJobs;
|
|
37
|
-
_isRunning = false;
|
|
38
|
-
_transitionState;
|
|
39
|
-
_currentEventName;
|
|
40
|
-
_currentEventPayload;
|
|
41
|
-
_observers;
|
|
42
|
-
dispatchErrorCallback;
|
|
43
|
-
_traceLevel;
|
|
44
|
-
_traceDomainStack;
|
|
45
|
-
_createInitTask;
|
|
46
|
-
_createEventDispatchTask;
|
|
47
|
-
constructor(TopState, instance, traceWriter, traceLevel, dispatchErrorCallback, initialize) {
|
|
48
|
-
this._instance = instance;
|
|
49
|
-
this._transitionState = undefined;
|
|
50
|
-
this._transitionCache = new Map();
|
|
51
|
-
this._traceLevel = traceLevel;
|
|
52
|
-
this._currentEventName = undefined;
|
|
53
|
-
this._currentEventPayload = undefined;
|
|
54
|
-
this._traceDomainStack = [];
|
|
55
|
-
this._createInitTask = mapInitTaskFactory(traceLevel);
|
|
56
|
-
this._createEventDispatchTask = mapEventDispatchTaskFactory(traceLevel);
|
|
57
|
-
this._jobs = [];
|
|
58
|
-
this._hiPriorityJobs = [];
|
|
59
|
-
this._isRunning = false;
|
|
60
|
-
this.topState = TopState;
|
|
61
|
-
this.topStateName = getStateName(TopState);
|
|
62
|
-
this.ctxTypeName = Object.getPrototypeOf(instance.ctx).constructor.name;
|
|
63
|
-
this.currentState = TopState;
|
|
64
|
-
this.traceWriter = traceWriter;
|
|
65
|
-
this.dispatchErrorCallback = dispatchErrorCallback;
|
|
66
|
-
if (initialize) {
|
|
67
|
-
this.pushTask(this._createInitTask(this));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
get ctx() {
|
|
71
|
-
return this._instance.ctx;
|
|
72
|
-
}
|
|
73
|
-
set ctx(ctx) {
|
|
74
|
-
this._instance.ctx = ctx;
|
|
75
|
-
}
|
|
76
|
-
/** Outbound boundary supplied to (or defaulted by) the factory (see {@link makeHsm}); never `undefined` at runtime. */
|
|
77
|
-
get port() {
|
|
78
|
-
return this._instance.portRef;
|
|
79
|
-
}
|
|
80
|
-
get eventName() { return this._currentEventName; }
|
|
81
|
-
get eventPayload() { return this._currentEventPayload; }
|
|
82
|
-
get currentStateName() { return getStateName(Object.getPrototypeOf(this._instance).constructor); }
|
|
83
|
-
get currentState() { return Object.getPrototypeOf(this._instance).constructor; }
|
|
84
|
-
set currentState(newState) { Object.setPrototypeOf(this._instance, newState.prototype); }
|
|
85
|
-
post(eventName, ...eventPayload) { this._notifyObservers(eventName, eventPayload); this.pushTask(this._createEventDispatchTask(this, eventName, ...eventPayload)); }
|
|
86
|
-
postNow(eventName, ...eventPayload) { this._notifyObservers(eventName, eventPayload); this.pushHiPriorityTask(this._createEventDispatchTask(this, eventName, ...eventPayload)); }
|
|
87
|
-
/** Register a test-only observer; returns a Disposable that removes it. See {@link TestActor.subscribe}. */
|
|
88
|
-
subscribe(observer) {
|
|
89
|
-
if (this._observers === undefined)
|
|
90
|
-
this._observers = new Set();
|
|
91
|
-
this._observers.add(observer);
|
|
92
|
-
return {
|
|
93
|
-
dispose: () => {
|
|
94
|
-
this._observers?.delete(observer);
|
|
95
|
-
},
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
_notifyObservers(eventName, eventPayload) {
|
|
99
|
-
if (this._observers === undefined || this._observers.size === 0)
|
|
100
|
-
return;
|
|
101
|
-
const message = { event: String(eventName), payload: [...eventPayload] };
|
|
102
|
-
for (const observer of this._observers)
|
|
103
|
-
observer(message);
|
|
104
|
-
}
|
|
105
|
-
deferredPost(millis, eventName, ...eventPayload) {
|
|
106
|
-
const enqueue = () => { this.pushTask(this._createEventDispatchTask(this, eventName, ...eventPayload)); };
|
|
107
|
-
// Use the port's timer service when available (Port / TestPort always provide setTimeout);
|
|
108
|
-
// fall back to global setTimeout for bare BasePort subclasses that omit it.
|
|
109
|
-
const port = this._instance.portRef;
|
|
110
|
-
if (port !== undefined && typeof port.setTimeout === 'function') {
|
|
111
|
-
port.setTimeout(enqueue, millis);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
setTimeout(enqueue, Math.max(0, millis));
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
transition(nextState) { this._transitionState = nextState; }
|
|
118
|
-
unhandled() { throw new UnhandledEventError(this); }
|
|
119
|
-
sleep(millis) { return new Promise(resolve => setTimeout(() => resolve(), millis)); }
|
|
120
|
-
get traceLevel() {
|
|
121
|
-
return this._traceLevel;
|
|
122
|
-
}
|
|
123
|
-
set traceLevel(traceLevel) {
|
|
124
|
-
this._createInitTask = mapInitTaskFactory(traceLevel);
|
|
125
|
-
this._createEventDispatchTask = mapEventDispatchTaskFactory(traceLevel);
|
|
126
|
-
this._traceLevel = traceLevel;
|
|
127
|
-
}
|
|
128
|
-
sync() {
|
|
129
|
-
return new Promise(resolve => {
|
|
130
|
-
this.pushTask((doneCallback) => {
|
|
131
|
-
resolve();
|
|
132
|
-
doneCallback();
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
pushTask(t) {
|
|
137
|
-
this.enqueueTask(t, this._jobs);
|
|
138
|
-
}
|
|
139
|
-
pushHiPriorityTask(t) {
|
|
140
|
-
this.enqueueTask(t, this._hiPriorityJobs);
|
|
141
|
-
}
|
|
142
|
-
unshiftHiPriorityTask(t) {
|
|
143
|
-
this._hiPriorityJobs.unshift(t);
|
|
144
|
-
if (this._isRunning)
|
|
145
|
-
return;
|
|
146
|
-
this._isRunning = true;
|
|
147
|
-
this.dequeue();
|
|
148
|
-
}
|
|
149
|
-
enqueueTask(t, queue) {
|
|
150
|
-
queue.push(t);
|
|
151
|
-
if (this._isRunning)
|
|
152
|
-
return;
|
|
153
|
-
this._isRunning = true;
|
|
154
|
-
this.dequeue();
|
|
155
|
-
}
|
|
156
|
-
restore(state, ctx) {
|
|
157
|
-
this.currentState = state;
|
|
158
|
-
this.ctx = ctx;
|
|
159
|
-
}
|
|
160
|
-
dequeue() {
|
|
161
|
-
if (this._hiPriorityJobs.length == 0 && this._jobs.length == 0) {
|
|
162
|
-
this._isRunning = false;
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
const task = this._hiPriorityJobs.length > 0 ? this._hiPriorityJobs.shift() : this._jobs.shift();
|
|
166
|
-
this.exec(task);
|
|
167
|
-
}
|
|
168
|
-
exec(task) {
|
|
169
|
-
setTimeout(() => this.runTask(task).then(() => this.dequeue()), 0);
|
|
170
|
-
}
|
|
171
|
-
runTask(task) {
|
|
172
|
-
return new Promise(resolve => {
|
|
173
|
-
task(() => {
|
|
174
|
-
this.drainHiPriority().then(resolve);
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
drainHiPriority() {
|
|
179
|
-
if (this._hiPriorityJobs.length === 0) {
|
|
180
|
-
return Promise.resolve();
|
|
181
|
-
}
|
|
182
|
-
const task = this._hiPriorityJobs.shift();
|
|
183
|
-
return this.runTask(task).then(() => this.drainHiPriority());
|
|
184
|
-
}
|
|
185
|
-
_tracePush(d, msg) {
|
|
186
|
-
this._traceDomainStack.push(d);
|
|
187
|
-
this.traceWriter.write(this, msg);
|
|
188
|
-
}
|
|
189
|
-
_tracePopDone(msg) {
|
|
190
|
-
this.traceWriter.write(this, `done: ${msg}`);
|
|
191
|
-
this._traceDomainStack.pop();
|
|
192
|
-
}
|
|
193
|
-
_tracePopError(msg) {
|
|
194
|
-
this.traceWriter.write(this, `failure: ${msg}`);
|
|
195
|
-
this._traceDomainStack.pop();
|
|
196
|
-
}
|
|
197
|
-
_traceWrite(msg) {
|
|
198
|
-
this.traceWriter.write(this, msg);
|
|
199
|
-
}
|
|
200
|
-
get traceHeader() {
|
|
201
|
-
return `${this._traceDomainStack.length === 0 ? '' : this._traceDomainStack.join('|') + '|'}`;
|
|
202
|
-
}
|
|
203
|
-
call(eventName, ...eventPayload) {
|
|
204
|
-
this._notifyObservers(eventName, eventPayload);
|
|
205
|
-
return new Promise((resolve, reject) => {
|
|
206
|
-
const taskFactory = this._createEventDispatchTask;
|
|
207
|
-
this.pushTask(taskFactory(this, eventName, ...[resolve, reject, ...eventPayload]));
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
//# sourceMappingURL=hsm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hsm.js","sourceRoot":"","sources":["../../../src/internal/hsm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { HsmWithTracing } from './defs.private.js';
|
|
2
|
-
/**
|
|
3
|
-
* Canonical event-handler lookup shared by every dispatch mode (production, debug, verbose).
|
|
4
|
-
*
|
|
5
|
-
* Walks the **state-class constructor chain** starting at `hsm.currentState` and going up to and
|
|
6
|
-
* **including** {@link TopState}, returning the first state that defines `eventName` as an **own**
|
|
7
|
-
* prototype property. Stopping at `TopState` keeps resolution inside the user's state hierarchy: it
|
|
8
|
-
* never falls through to `State.prototype` / `Object.prototype`, so a posted event can never
|
|
9
|
-
* accidentally resolve to a runtime method (`post`, `transition`, `toString`, …). Returns
|
|
10
|
-
* `undefined` when no state owns the handler — the caller then routes the event to `onUnhandled`.
|
|
11
|
-
*
|
|
12
|
-
* The verbose-trace dispatcher narrates this exact algorithm step by step; sharing it here
|
|
13
|
-
* guarantees production / debug / verbose dispatch all resolve handlers identically (proposal T6).
|
|
14
|
-
*/
|
|
15
|
-
export declare function lookupEventHandler<Context, Protocol extends {} | undefined>(hsm: HsmWithTracing<Context, Protocol>, eventName: PropertyKey): ((...args: any[]) => unknown) | undefined;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** @internal */
|
|
2
|
-
import { TopState } from '../index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Canonical event-handler lookup shared by every dispatch mode (production, debug, verbose).
|
|
5
|
-
*
|
|
6
|
-
* Walks the **state-class constructor chain** starting at `hsm.currentState` and going up to and
|
|
7
|
-
* **including** {@link TopState}, returning the first state that defines `eventName` as an **own**
|
|
8
|
-
* prototype property. Stopping at `TopState` keeps resolution inside the user's state hierarchy: it
|
|
9
|
-
* never falls through to `State.prototype` / `Object.prototype`, so a posted event can never
|
|
10
|
-
* accidentally resolve to a runtime method (`post`, `transition`, `toString`, …). Returns
|
|
11
|
-
* `undefined` when no state owns the handler — the caller then routes the event to `onUnhandled`.
|
|
12
|
-
*
|
|
13
|
-
* The verbose-trace dispatcher narrates this exact algorithm step by step; sharing it here
|
|
14
|
-
* guarantees production / debug / verbose dispatch all resolve handlers identically (proposal T6).
|
|
15
|
-
*/
|
|
16
|
-
export function lookupEventHandler(hsm, eventName) {
|
|
17
|
-
let state = hsm.currentState;
|
|
18
|
-
while (true) {
|
|
19
|
-
const prototype = state.prototype;
|
|
20
|
-
if (Object.prototype.hasOwnProperty.call(prototype, eventName)) {
|
|
21
|
-
return prototype[eventName];
|
|
22
|
-
}
|
|
23
|
-
if (state === TopState) {
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
state = Object.getPrototypeOf(state);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=lookup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/internal/lookup.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAc,QAAQ,EAAE,MAAM,KAAK,CAAC;AAI3C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAA2C,GAAsC,EAAE,SAAsB;IAC1I,IAAI,KAAK,GAAkC,GAAG,CAAC,YAAY,CAAC;IAC5D,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,SAAoD,CAAC;QAC7E,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YAChE,OAAO,SAAS,CAAC,SAAS,CAAgC,CAAC;QAC5D,CAAC;QACD,IAAK,KAAiB,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAkC,CAAC;IACvE,CAAC;AACF,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/** @internal */
|
|
2
|
-
import { StateClass } from '../index.js';
|
|
3
|
-
/** @internal */
|
|
4
|
-
export declare function asError(err: unknown): Error;
|
|
5
|
-
/** @internal */
|
|
6
|
-
export declare function quoteUnknown(err: unknown): string;
|
|
7
|
-
/** @internal */
|
|
8
|
-
export declare function quoteError(err: Error): string;
|
|
9
|
-
/** @internal */
|
|
10
|
-
export declare function getInitialState<Context, Protocol extends {} | undefined>(State: StateClass<Context, Protocol>): StateClass<Context, Protocol>;
|
|
11
|
-
/** @internal */
|
|
12
|
-
export declare function hasInitialState<Context, Protocol extends {} | undefined>(State: StateClass<Context, Protocol>): boolean;
|
|
13
|
-
/** @internal */
|
|
14
|
-
export declare function getTransitionKey<Context, Protocol extends {} | undefined>(FromState: StateClass<Context, Protocol>, ToState: StateClass<Context, Protocol>): string;
|
|
15
|
-
/** @internal */
|
|
16
|
-
export declare function defineStateName<Context, Protocol extends {} | undefined>(state: StateClass<Context, Protocol>, displayName: string): void;
|
|
17
|
-
/** @internal — prefers an own explicit name registered for minified browser bundles. */
|
|
18
|
-
export declare function getStateName<Context, Protocol extends {} | undefined>(state: StateClass<Context, Protocol>): string;
|
|
19
|
-
/**
|
|
20
|
-
* @internal Switch the instance prototype to `state` immediately before `onEntry`.
|
|
21
|
-
* Invariants and `this.currentState` must reflect the entering state during the hook.
|
|
22
|
-
*/
|
|
23
|
-
export declare function adoptStateBeforeOnEntry<Context, Protocol extends {} | undefined>(hsm: {
|
|
24
|
-
_instance: object;
|
|
25
|
-
currentState: StateClass<Context, Protocol>;
|
|
26
|
-
}, state: StateClass<Context, Protocol>): void;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/** @internal */
|
|
2
|
-
export function asError(err) {
|
|
3
|
-
return err instanceof Error ? err : new Error(String(err));
|
|
4
|
-
}
|
|
5
|
-
/** @internal */
|
|
6
|
-
export function quoteUnknown(err) {
|
|
7
|
-
return quoteError(asError(err));
|
|
8
|
-
}
|
|
9
|
-
/** @internal */
|
|
10
|
-
export function quoteError(err) {
|
|
11
|
-
return `${err.name}${err.message ? `: ${err.message}` : ' with no error message'}`;
|
|
12
|
-
}
|
|
13
|
-
/** @internal */
|
|
14
|
-
export function getInitialState(State) {
|
|
15
|
-
return State._initialState;
|
|
16
|
-
}
|
|
17
|
-
/** @internal */
|
|
18
|
-
export function hasInitialState(State) {
|
|
19
|
-
return Object.prototype.hasOwnProperty.call(State, '_initialState');
|
|
20
|
-
}
|
|
21
|
-
/** @internal */
|
|
22
|
-
export function getTransitionKey(FromState, ToState) {
|
|
23
|
-
return `${getStateName(FromState)}=>${getStateName(ToState)}`;
|
|
24
|
-
}
|
|
25
|
-
/** @internal */
|
|
26
|
-
export function defineStateName(state, displayName) {
|
|
27
|
-
Object.defineProperty(state, '_stateName', {
|
|
28
|
-
value: displayName,
|
|
29
|
-
writable: false,
|
|
30
|
-
configurable: false,
|
|
31
|
-
enumerable: false,
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
/** @internal — prefers an own explicit name registered for minified browser bundles. */
|
|
35
|
-
export function getStateName(state) {
|
|
36
|
-
if (Object.prototype.hasOwnProperty.call(state, '_stateName')) {
|
|
37
|
-
return state._stateName;
|
|
38
|
-
}
|
|
39
|
-
return state.name;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* @internal Switch the instance prototype to `state` immediately before `onEntry`.
|
|
43
|
-
* Invariants and `this.currentState` must reflect the entering state during the hook.
|
|
44
|
-
*/
|
|
45
|
-
export function adoptStateBeforeOnEntry(hsm, state) {
|
|
46
|
-
hsm.currentState = state;
|
|
47
|
-
const actual = Object.getPrototypeOf(hsm._instance).constructor;
|
|
48
|
-
if (actual !== state) {
|
|
49
|
-
throw new Error(`ihsm: prototype must be ${getStateName(state)} before onEntry, was ${getStateName(actual)}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/internal/utils.ts"],"names":[],"mappings":"AAGA,gBAAgB;AAChB,MAAM,UAAU,OAAO,CAAC,GAAY;IACnC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAAC,GAAY;IACxC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,UAAU,CAAC,GAAU;IACpC,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC;AACpF,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,eAAe,CAA2C,KAAoC;IAC7G,OAAQ,KAAgC,CAAC,aAA8C,CAAC;AACzF,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,eAAe,CAA2C,KAAoC;IAC7G,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AACrE,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAA2C,SAAwC,EAAE,OAAsC;IAC1J,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,eAAe,CAA2C,KAAoC,EAAE,WAAmB;IAClI,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE;QAC1C,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;KACjB,CAAC,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAA2C,KAAoC;IAC1G,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;QAC/D,OAAQ,KAA2C,CAAC,UAAU,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAA2C,GAAuE,EAAE,KAAoC;IAC9L,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC;IAChE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,CAAC,KAAK,CAAC,wBAAwB,YAAY,CAAC,MAAuC,CAAC,EAAE,CAAC,CAAC;IAChJ,CAAC;AACF,CAAC"}
|