ihsm 0.0.26 → 0.1.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 +105 -113
- package/lib/cjs/index.d.ts +5 -1394
- package/lib/cjs/index.js +53 -764
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/internal/runtime.d.ts +293 -0
- package/lib/cjs/internal/runtime.js +1906 -0
- package/lib/cjs/internal/runtime.js.map +1 -0
- package/lib/cjs/internal/types.d.ts +348 -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 +38 -91
- package/lib/cjs/testing.js +72 -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 +5 -1394
- package/lib/esm/index.js +3 -742
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/internal/runtime.d.ts +293 -0
- package/lib/esm/internal/runtime.js +1847 -0
- package/lib/esm/internal/runtime.js.map +1 -0
- package/lib/esm/internal/types.d.ts +348 -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 +38 -91
- package/lib/esm/testing.js +72 -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/cjs/internal/hsm.js
DELETED
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HsmObject = void 0;
|
|
4
|
-
const __1 = require("../");
|
|
5
|
-
const dispatch_trace_1 = require("./dispatch.trace");
|
|
6
|
-
const dispatch_debug_1 = require("./dispatch.debug");
|
|
7
|
-
const dispatch_production_1 = require("./dispatch.production");
|
|
8
|
-
const utils_1 = require("./utils");
|
|
9
|
-
function mapInitTaskFactory(traceLevel) {
|
|
10
|
-
switch (traceLevel) {
|
|
11
|
-
case __1.TraceLevel.PRODUCTION:
|
|
12
|
-
return dispatch_production_1.createInitTask;
|
|
13
|
-
case __1.TraceLevel.DEBUG:
|
|
14
|
-
return dispatch_debug_1.createInitTask;
|
|
15
|
-
case __1.TraceLevel.VERBOSE_DEBUG:
|
|
16
|
-
return dispatch_trace_1.createInitTask;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function mapEventDispatchTaskFactory(traceLevel) {
|
|
20
|
-
switch (traceLevel) {
|
|
21
|
-
case __1.TraceLevel.PRODUCTION:
|
|
22
|
-
return dispatch_production_1.createEventDispatchTask;
|
|
23
|
-
case __1.TraceLevel.DEBUG:
|
|
24
|
-
return dispatch_debug_1.createEventDispatchTask;
|
|
25
|
-
case __1.TraceLevel.VERBOSE_DEBUG:
|
|
26
|
-
return dispatch_trace_1.createEventDispatchTask;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/** @internal */
|
|
30
|
-
// prettier-ignore
|
|
31
|
-
class HsmObject {
|
|
32
|
-
topState;
|
|
33
|
-
topStateName;
|
|
34
|
-
ctxTypeName;
|
|
35
|
-
traceWriter;
|
|
36
|
-
_instance;
|
|
37
|
-
_transitionCache = new Map();
|
|
38
|
-
_jobs;
|
|
39
|
-
_hiPriorityJobs;
|
|
40
|
-
_isRunning = false;
|
|
41
|
-
_transitionState;
|
|
42
|
-
_currentEventName;
|
|
43
|
-
_currentEventPayload;
|
|
44
|
-
_observers;
|
|
45
|
-
dispatchErrorCallback;
|
|
46
|
-
_traceLevel;
|
|
47
|
-
_traceDomainStack;
|
|
48
|
-
_createInitTask;
|
|
49
|
-
_createEventDispatchTask;
|
|
50
|
-
constructor(TopState, instance, traceWriter, traceLevel, dispatchErrorCallback, initialize) {
|
|
51
|
-
this._instance = instance;
|
|
52
|
-
this._transitionState = undefined;
|
|
53
|
-
this._transitionCache = new Map();
|
|
54
|
-
this._traceLevel = traceLevel;
|
|
55
|
-
this._currentEventName = undefined;
|
|
56
|
-
this._currentEventPayload = undefined;
|
|
57
|
-
this._traceDomainStack = [];
|
|
58
|
-
this._createInitTask = mapInitTaskFactory(traceLevel);
|
|
59
|
-
this._createEventDispatchTask = mapEventDispatchTaskFactory(traceLevel);
|
|
60
|
-
this._jobs = [];
|
|
61
|
-
this._hiPriorityJobs = [];
|
|
62
|
-
this._isRunning = false;
|
|
63
|
-
this.topState = TopState;
|
|
64
|
-
this.topStateName = (0, utils_1.getStateName)(TopState);
|
|
65
|
-
this.ctxTypeName = Object.getPrototypeOf(instance.ctx).constructor.name;
|
|
66
|
-
this.currentState = TopState;
|
|
67
|
-
this.traceWriter = traceWriter;
|
|
68
|
-
this.dispatchErrorCallback = dispatchErrorCallback;
|
|
69
|
-
if (initialize) {
|
|
70
|
-
this.pushTask(this._createInitTask(this));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
get ctx() {
|
|
74
|
-
return this._instance.ctx;
|
|
75
|
-
}
|
|
76
|
-
set ctx(ctx) {
|
|
77
|
-
this._instance.ctx = ctx;
|
|
78
|
-
}
|
|
79
|
-
/** Outbound boundary supplied to (or defaulted by) the factory (see {@link makeHsm}); never `undefined` at runtime. */
|
|
80
|
-
get port() {
|
|
81
|
-
return this._instance.portRef;
|
|
82
|
-
}
|
|
83
|
-
get eventName() { return this._currentEventName; }
|
|
84
|
-
get eventPayload() { return this._currentEventPayload; }
|
|
85
|
-
get currentStateName() { return (0, utils_1.getStateName)(Object.getPrototypeOf(this._instance).constructor); }
|
|
86
|
-
get currentState() { return Object.getPrototypeOf(this._instance).constructor; }
|
|
87
|
-
set currentState(newState) { Object.setPrototypeOf(this._instance, newState.prototype); }
|
|
88
|
-
post(eventName, ...eventPayload) { this._notifyObservers(eventName, eventPayload); this.pushTask(this._createEventDispatchTask(this, eventName, ...eventPayload)); }
|
|
89
|
-
postNow(eventName, ...eventPayload) { this._notifyObservers(eventName, eventPayload); this.pushHiPriorityTask(this._createEventDispatchTask(this, eventName, ...eventPayload)); }
|
|
90
|
-
/** Register a test-only observer; returns a Disposable that removes it. See {@link TestActor.subscribe}. */
|
|
91
|
-
subscribe(observer) {
|
|
92
|
-
if (this._observers === undefined)
|
|
93
|
-
this._observers = new Set();
|
|
94
|
-
this._observers.add(observer);
|
|
95
|
-
return {
|
|
96
|
-
dispose: () => {
|
|
97
|
-
this._observers?.delete(observer);
|
|
98
|
-
},
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
_notifyObservers(eventName, eventPayload) {
|
|
102
|
-
if (this._observers === undefined || this._observers.size === 0)
|
|
103
|
-
return;
|
|
104
|
-
const message = { event: String(eventName), payload: [...eventPayload] };
|
|
105
|
-
for (const observer of this._observers)
|
|
106
|
-
observer(message);
|
|
107
|
-
}
|
|
108
|
-
deferredPost(millis, eventName, ...eventPayload) {
|
|
109
|
-
const enqueue = () => { this.pushTask(this._createEventDispatchTask(this, eventName, ...eventPayload)); };
|
|
110
|
-
// Use the port's timer service when available (Port / TestPort always provide setTimeout);
|
|
111
|
-
// fall back to global setTimeout for bare BasePort subclasses that omit it.
|
|
112
|
-
const port = this._instance.portRef;
|
|
113
|
-
if (port !== undefined && typeof port.setTimeout === 'function') {
|
|
114
|
-
port.setTimeout(enqueue, millis);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
setTimeout(enqueue, Math.max(0, millis));
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
transition(nextState) { this._transitionState = nextState; }
|
|
121
|
-
unhandled() { throw new __1.UnhandledEventError(this); }
|
|
122
|
-
sleep(millis) { return new Promise(resolve => setTimeout(() => resolve(), millis)); }
|
|
123
|
-
get traceLevel() {
|
|
124
|
-
return this._traceLevel;
|
|
125
|
-
}
|
|
126
|
-
set traceLevel(traceLevel) {
|
|
127
|
-
this._createInitTask = mapInitTaskFactory(traceLevel);
|
|
128
|
-
this._createEventDispatchTask = mapEventDispatchTaskFactory(traceLevel);
|
|
129
|
-
this._traceLevel = traceLevel;
|
|
130
|
-
}
|
|
131
|
-
sync() {
|
|
132
|
-
return new Promise(resolve => {
|
|
133
|
-
this.pushTask((doneCallback) => {
|
|
134
|
-
resolve();
|
|
135
|
-
doneCallback();
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
pushTask(t) {
|
|
140
|
-
this.enqueueTask(t, this._jobs);
|
|
141
|
-
}
|
|
142
|
-
pushHiPriorityTask(t) {
|
|
143
|
-
this.enqueueTask(t, this._hiPriorityJobs);
|
|
144
|
-
}
|
|
145
|
-
unshiftHiPriorityTask(t) {
|
|
146
|
-
this._hiPriorityJobs.unshift(t);
|
|
147
|
-
if (this._isRunning)
|
|
148
|
-
return;
|
|
149
|
-
this._isRunning = true;
|
|
150
|
-
this.dequeue();
|
|
151
|
-
}
|
|
152
|
-
enqueueTask(t, queue) {
|
|
153
|
-
queue.push(t);
|
|
154
|
-
if (this._isRunning)
|
|
155
|
-
return;
|
|
156
|
-
this._isRunning = true;
|
|
157
|
-
this.dequeue();
|
|
158
|
-
}
|
|
159
|
-
restore(state, ctx) {
|
|
160
|
-
this.currentState = state;
|
|
161
|
-
this.ctx = ctx;
|
|
162
|
-
}
|
|
163
|
-
dequeue() {
|
|
164
|
-
if (this._hiPriorityJobs.length == 0 && this._jobs.length == 0) {
|
|
165
|
-
this._isRunning = false;
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
const task = this._hiPriorityJobs.length > 0 ? this._hiPriorityJobs.shift() : this._jobs.shift();
|
|
169
|
-
this.exec(task);
|
|
170
|
-
}
|
|
171
|
-
exec(task) {
|
|
172
|
-
setTimeout(() => this.runTask(task).then(() => this.dequeue()), 0);
|
|
173
|
-
}
|
|
174
|
-
runTask(task) {
|
|
175
|
-
return new Promise(resolve => {
|
|
176
|
-
task(() => {
|
|
177
|
-
this.drainHiPriority().then(resolve);
|
|
178
|
-
});
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
drainHiPriority() {
|
|
182
|
-
if (this._hiPriorityJobs.length === 0) {
|
|
183
|
-
return Promise.resolve();
|
|
184
|
-
}
|
|
185
|
-
const task = this._hiPriorityJobs.shift();
|
|
186
|
-
return this.runTask(task).then(() => this.drainHiPriority());
|
|
187
|
-
}
|
|
188
|
-
_tracePush(d, msg) {
|
|
189
|
-
this._traceDomainStack.push(d);
|
|
190
|
-
this.traceWriter.write(this, msg);
|
|
191
|
-
}
|
|
192
|
-
_tracePopDone(msg) {
|
|
193
|
-
this.traceWriter.write(this, `done: ${msg}`);
|
|
194
|
-
this._traceDomainStack.pop();
|
|
195
|
-
}
|
|
196
|
-
_tracePopError(msg) {
|
|
197
|
-
this.traceWriter.write(this, `failure: ${msg}`);
|
|
198
|
-
this._traceDomainStack.pop();
|
|
199
|
-
}
|
|
200
|
-
_traceWrite(msg) {
|
|
201
|
-
this.traceWriter.write(this, msg);
|
|
202
|
-
}
|
|
203
|
-
get traceHeader() {
|
|
204
|
-
return `${this._traceDomainStack.length === 0 ? '' : this._traceDomainStack.join('|') + '|'}`;
|
|
205
|
-
}
|
|
206
|
-
call(eventName, ...eventPayload) {
|
|
207
|
-
this._notifyObservers(eventName, eventPayload);
|
|
208
|
-
return new Promise((resolve, reject) => {
|
|
209
|
-
const taskFactory = this._createEventDispatchTask;
|
|
210
|
-
this.pushTask(taskFactory(this, eventName, ...[resolve, reject, ...eventPayload]));
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
exports.HsmObject = HsmObject;
|
|
215
|
-
//# 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';
|
|
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,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.lookupEventHandler = lookupEventHandler;
|
|
4
|
-
/** @internal */
|
|
5
|
-
const __1 = require("../");
|
|
6
|
-
/**
|
|
7
|
-
* Canonical event-handler lookup shared by every dispatch mode (production, debug, verbose).
|
|
8
|
-
*
|
|
9
|
-
* Walks the **state-class constructor chain** starting at `hsm.currentState` and going up to and
|
|
10
|
-
* **including** {@link TopState}, returning the first state that defines `eventName` as an **own**
|
|
11
|
-
* prototype property. Stopping at `TopState` keeps resolution inside the user's state hierarchy: it
|
|
12
|
-
* never falls through to `State.prototype` / `Object.prototype`, so a posted event can never
|
|
13
|
-
* accidentally resolve to a runtime method (`post`, `transition`, `toString`, …). Returns
|
|
14
|
-
* `undefined` when no state owns the handler — the caller then routes the event to `onUnhandled`.
|
|
15
|
-
*
|
|
16
|
-
* The verbose-trace dispatcher narrates this exact algorithm step by step; sharing it here
|
|
17
|
-
* guarantees production / debug / verbose dispatch all resolve handlers identically (proposal T6).
|
|
18
|
-
*/
|
|
19
|
-
function lookupEventHandler(hsm, eventName) {
|
|
20
|
-
let state = hsm.currentState;
|
|
21
|
-
while (true) {
|
|
22
|
-
const prototype = state.prototype;
|
|
23
|
-
if (Object.prototype.hasOwnProperty.call(prototype, eventName)) {
|
|
24
|
-
return prototype[eventName];
|
|
25
|
-
}
|
|
26
|
-
if (state === __1.TopState) {
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
state = Object.getPrototypeOf(state);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=lookup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/internal/lookup.ts"],"names":[],"mappings":";;AAkBA,gDAYC;AA9BD,gBAAgB;AAChB,2BAA2C;AAI3C;;;;;;;;;;;;GAYG;AACH,SAAgB,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,YAAQ,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 '../';
|
|
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,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.asError = asError;
|
|
4
|
-
exports.quoteUnknown = quoteUnknown;
|
|
5
|
-
exports.quoteError = quoteError;
|
|
6
|
-
exports.getInitialState = getInitialState;
|
|
7
|
-
exports.hasInitialState = hasInitialState;
|
|
8
|
-
exports.getTransitionKey = getTransitionKey;
|
|
9
|
-
exports.defineStateName = defineStateName;
|
|
10
|
-
exports.getStateName = getStateName;
|
|
11
|
-
exports.adoptStateBeforeOnEntry = adoptStateBeforeOnEntry;
|
|
12
|
-
/** @internal */
|
|
13
|
-
function asError(err) {
|
|
14
|
-
return err instanceof Error ? err : new Error(String(err));
|
|
15
|
-
}
|
|
16
|
-
/** @internal */
|
|
17
|
-
function quoteUnknown(err) {
|
|
18
|
-
return quoteError(asError(err));
|
|
19
|
-
}
|
|
20
|
-
/** @internal */
|
|
21
|
-
function quoteError(err) {
|
|
22
|
-
return `${err.name}${err.message ? `: ${err.message}` : ' with no error message'}`;
|
|
23
|
-
}
|
|
24
|
-
/** @internal */
|
|
25
|
-
function getInitialState(State) {
|
|
26
|
-
return State._initialState;
|
|
27
|
-
}
|
|
28
|
-
/** @internal */
|
|
29
|
-
function hasInitialState(State) {
|
|
30
|
-
return Object.prototype.hasOwnProperty.call(State, '_initialState');
|
|
31
|
-
}
|
|
32
|
-
/** @internal */
|
|
33
|
-
function getTransitionKey(FromState, ToState) {
|
|
34
|
-
return `${getStateName(FromState)}=>${getStateName(ToState)}`;
|
|
35
|
-
}
|
|
36
|
-
/** @internal */
|
|
37
|
-
function defineStateName(state, displayName) {
|
|
38
|
-
Object.defineProperty(state, '_stateName', {
|
|
39
|
-
value: displayName,
|
|
40
|
-
writable: false,
|
|
41
|
-
configurable: false,
|
|
42
|
-
enumerable: false,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/** @internal — prefers an own explicit name registered for minified browser bundles. */
|
|
46
|
-
function getStateName(state) {
|
|
47
|
-
if (Object.prototype.hasOwnProperty.call(state, '_stateName')) {
|
|
48
|
-
return state._stateName;
|
|
49
|
-
}
|
|
50
|
-
return state.name;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* @internal Switch the instance prototype to `state` immediately before `onEntry`.
|
|
54
|
-
* Invariants and `this.currentState` must reflect the entering state during the hook.
|
|
55
|
-
*/
|
|
56
|
-
function adoptStateBeforeOnEntry(hsm, state) {
|
|
57
|
-
hsm.currentState = state;
|
|
58
|
-
const actual = Object.getPrototypeOf(hsm._instance).constructor;
|
|
59
|
-
if (actual !== state) {
|
|
60
|
-
throw new Error(`ihsm: prototype must be ${getStateName(state)} before onEntry, was ${getStateName(actual)}`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/internal/utils.ts"],"names":[],"mappings":";;AAIA,0BAEC;AAGD,oCAEC;AAGD,gCAEC;AAGD,0CAEC;AAGD,0CAEC;AAGD,4CAEC;AAGD,0CAOC;AAGD,oCAKC;AAMD,0DAMC;AA1DD,gBAAgB;AAChB,SAAgB,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,SAAgB,YAAY,CAAC,GAAY;IACxC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,gBAAgB;AAChB,SAAgB,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,SAAgB,eAAe,CAA2C,KAAoC;IAC7G,OAAQ,KAAgC,CAAC,aAA8C,CAAC;AACzF,CAAC;AAED,gBAAgB;AAChB,SAAgB,eAAe,CAA2C,KAAoC;IAC7G,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AACrE,CAAC;AAED,gBAAgB;AAChB,SAAgB,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,SAAgB,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,SAAgB,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,SAAgB,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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { PostedEvent, EventPayload, Hsm, StateClass, State } from '../index.js';
|
|
2
|
-
/** @internal */
|
|
3
|
-
export interface Instance<Context, Protocol extends {} | undefined> {
|
|
4
|
-
ctx: Context;
|
|
5
|
-
hsm: HsmWithTracing<Context, Protocol>;
|
|
6
|
-
/**
|
|
7
|
-
* Outbound boundary surfaced as `this.port`. Always set by `instantiate`: the supplied port
|
|
8
|
-
* instance (whose `actor` is bound lazily by the runtime), or a `Port` (which also
|
|
9
|
-
* provides the timer service used by `deferredPost`) when none is supplied.
|
|
10
|
-
*
|
|
11
|
-
* Stored under `portRef` (not `port`) because the instance's prototype is a `TopState`
|
|
12
|
-
* subclass whose `port` accessor would otherwise shadow this slot. Optional on the type only
|
|
13
|
-
* because it is assigned just after the instance literal is created.
|
|
14
|
-
*/
|
|
15
|
-
portRef?: unknown;
|
|
16
|
-
}
|
|
17
|
-
/** @internal */
|
|
18
|
-
export interface Transition<Context, Protocol extends {} | undefined> {
|
|
19
|
-
execute(hsm: HsmWithTracing<Context, Protocol>, srcState: StateClass<Context, Protocol>, dstState: StateClass<Context, Protocol>): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
/** @internal */
|
|
22
|
-
export type DoneCallback = () => void;
|
|
23
|
-
/** @internal */
|
|
24
|
-
export type Task = (done: DoneCallback) => void;
|
|
25
|
-
/** @internal */
|
|
26
|
-
export interface HsmWithTracing<Context, Protocol extends {} | undefined> extends Hsm<Context, Protocol>, State<Context, Protocol> {
|
|
27
|
-
_transitionCache: Map<string, Transition<Context, Protocol>>;
|
|
28
|
-
_createInitTask: <DispatchContext, DispatchProtocol extends {} | undefined>(hsm: HsmWithTracing<DispatchContext, DispatchProtocol>) => Task;
|
|
29
|
-
_createEventDispatchTask: <DispatchContext, DispatchProtocol extends {} | undefined, EventName extends keyof DispatchProtocol>(hsm: HsmWithTracing<DispatchContext, DispatchProtocol>, eventName: PostedEvent<DispatchProtocol, EventName>, ...eventPayload: EventPayload<DispatchProtocol, EventName>) => Task;
|
|
30
|
-
_instance: Instance<Context, Protocol>;
|
|
31
|
-
_transitionState?: StateClass<Context, Protocol>;
|
|
32
|
-
_currentEventName?: string;
|
|
33
|
-
_currentEventPayload?: any[];
|
|
34
|
-
currentState: StateClass<Context, Protocol>;
|
|
35
|
-
_tracePush(domain: string, msg: string): void;
|
|
36
|
-
_tracePopDone(msg: string): void;
|
|
37
|
-
_tracePopError(msg: string): void;
|
|
38
|
-
_traceWrite(msg: any): void;
|
|
39
|
-
unshiftHiPriorityTask(t: Task): void;
|
|
40
|
-
pushHiPriorityTask(t: Task): void;
|
|
41
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defs.private.js","sourceRoot":"","sources":["../../../src/internal/defs.private.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { PostedEvent, EventPayload } from '../index.js';
|
|
2
|
-
import { HsmWithTracing, Task } from './defs.private.js';
|
|
3
|
-
export declare function createInitTask<DispatchContext, DispatchProtocol extends {} | undefined>(hsm: HsmWithTracing<DispatchContext, DispatchProtocol>): Task;
|
|
4
|
-
export declare function createEventDispatchTask<DispatchContext, DispatchProtocol extends {} | undefined, EventName extends keyof DispatchProtocol>(hsm: HsmWithTracing<DispatchContext, DispatchProtocol>, eventName: PostedEvent<DispatchProtocol, EventName>, ...eventPayload: EventPayload<DispatchProtocol, EventName>): Task;
|