posipaki 0.6.0 → 0.6.2
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/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/process.d.ts +9 -2
- package/dist/process.js +40 -5
- package/dist/process.js.map +1 -1
- package/dist/util.d.ts +5 -1
- package/dist/util.js +19 -2
- package/dist/util.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Process, { spawn, Message, ProcessCtx, ProcessFn } from './process
|
|
2
|
-
import { ExitMessage, runDispatch } from './util
|
|
1
|
+
import Process, { spawn, Message, ProcessCtx, ProcessFn } from './process';
|
|
2
|
+
import { ExitMessage, runDispatch } from './util';
|
|
3
3
|
export { Process, spawn, runDispatch, Message, ExitMessage, ProcessCtx, ProcessFn };
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,KAAK,EAAkC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,KAAK,EAAkC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAe,WAAW,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAA+C,CAAA"}
|
package/dist/process.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExitMessage } from './util
|
|
1
|
+
import { ExitMessage } from './util';
|
|
2
2
|
export interface Message {
|
|
3
3
|
type: string;
|
|
4
4
|
}
|
|
@@ -22,18 +22,25 @@ declare class Process<Args, State, InMessage extends Message, OutMessage extends
|
|
|
22
22
|
state: State | null;
|
|
23
23
|
private current;
|
|
24
24
|
private buffer;
|
|
25
|
+
private nextTick;
|
|
25
26
|
private children;
|
|
26
27
|
private subscribers;
|
|
27
28
|
private exitWaiter;
|
|
29
|
+
private _isPaused;
|
|
28
30
|
constructor(fn: ProcessFn<Args, State, InMessage, OutMessage>, pname: string, toParent: ProcessMessageCb<OutMessage> | undefined);
|
|
29
31
|
start(arg0: Args): void;
|
|
30
32
|
fork<ChildArgs, ChildState, ChildIM extends Message, ChildOM extends Message>(fn: ProcessFn<ChildArgs, ChildState, ChildIM, ChildOM>, pname: string): (args: ChildArgs) => Process<ChildArgs, ChildState, ChildIM, ChildOM>;
|
|
31
|
-
_tick(
|
|
33
|
+
_tick(): void;
|
|
34
|
+
_eatResult(ret: IteratorResult<State | null, void> | null): void;
|
|
32
35
|
toAllChildren(msg: Message): void;
|
|
33
36
|
send(msg: InMessage): void;
|
|
37
|
+
tick(): void;
|
|
38
|
+
_scheduleTick(): void;
|
|
34
39
|
notify(): void;
|
|
35
40
|
get isListenedTo(): boolean;
|
|
36
41
|
subscribe(f: NotifyFn): () => void;
|
|
42
|
+
pause(): void;
|
|
43
|
+
resume(): void;
|
|
37
44
|
wait(): Promise<void>;
|
|
38
45
|
fromChild(msg: InMessage): void;
|
|
39
46
|
}
|
package/dist/process.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { watchExit, defer, makeWaiter } from './util
|
|
1
|
+
import { watchExit, defer, makeWaiter } from './util';
|
|
2
2
|
;
|
|
3
3
|
export function spawn(fn, pname, toParent) {
|
|
4
4
|
return (args) => {
|
|
@@ -10,6 +10,7 @@ export function spawn(fn, pname, toParent) {
|
|
|
10
10
|
const noop = () => null;
|
|
11
11
|
class Process {
|
|
12
12
|
constructor(fn, pname, toParent) {
|
|
13
|
+
this._isPaused = false;
|
|
13
14
|
this.pgenerator = fn;
|
|
14
15
|
this.pname = pname;
|
|
15
16
|
this.toParent = toParent || noop;
|
|
@@ -17,6 +18,7 @@ class Process {
|
|
|
17
18
|
this.current = null;
|
|
18
19
|
this.state = null;
|
|
19
20
|
this.buffer = [];
|
|
21
|
+
this.nextTick = null;
|
|
20
22
|
this.children = [];
|
|
21
23
|
this.subscribers = [];
|
|
22
24
|
this.exitWaiter = makeWaiter();
|
|
@@ -32,7 +34,7 @@ class Process {
|
|
|
32
34
|
this.current = task;
|
|
33
35
|
let ret = task.next();
|
|
34
36
|
this.state = ret.value || null;
|
|
35
|
-
this.
|
|
37
|
+
this._eatResult(task.next());
|
|
36
38
|
}
|
|
37
39
|
fork(fn, pname) {
|
|
38
40
|
return (args) => {
|
|
@@ -45,15 +47,22 @@ class Process {
|
|
|
45
47
|
return child;
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
|
-
_tick(
|
|
50
|
+
_tick() {
|
|
49
51
|
if (!this.current) {
|
|
50
52
|
return;
|
|
51
53
|
}
|
|
52
54
|
let msg;
|
|
55
|
+
let ret = null;
|
|
53
56
|
while (msg = this.buffer.shift()) {
|
|
54
|
-
this.
|
|
57
|
+
ret = this.current.next(msg);
|
|
58
|
+
if (ret.done) {
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
55
61
|
}
|
|
56
62
|
this.notify();
|
|
63
|
+
this._eatResult(ret);
|
|
64
|
+
}
|
|
65
|
+
_eatResult(ret) {
|
|
57
66
|
if (ret && ret.done) {
|
|
58
67
|
this.exitWaiter.resolve();
|
|
59
68
|
}
|
|
@@ -63,7 +72,23 @@ class Process {
|
|
|
63
72
|
}
|
|
64
73
|
send(msg) {
|
|
65
74
|
this.buffer.push(msg);
|
|
66
|
-
|
|
75
|
+
this._scheduleTick();
|
|
76
|
+
}
|
|
77
|
+
tick() {
|
|
78
|
+
var _a;
|
|
79
|
+
(_a = this.nextTick) === null || _a === void 0 ? void 0 : _a.flush();
|
|
80
|
+
this.nextTick = null;
|
|
81
|
+
}
|
|
82
|
+
_scheduleTick() {
|
|
83
|
+
var _a;
|
|
84
|
+
if (this._isPaused) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
(_a = this.nextTick) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
88
|
+
this.nextTick = defer(() => {
|
|
89
|
+
this.nextTick = null;
|
|
90
|
+
this._tick();
|
|
91
|
+
});
|
|
67
92
|
}
|
|
68
93
|
notify() {
|
|
69
94
|
this.subscribers.forEach((f) => f());
|
|
@@ -81,6 +106,16 @@ class Process {
|
|
|
81
106
|
this.subscribers.splice(idx, 1);
|
|
82
107
|
};
|
|
83
108
|
}
|
|
109
|
+
pause() {
|
|
110
|
+
var _a;
|
|
111
|
+
(_a = this.nextTick) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
112
|
+
this.nextTick = null;
|
|
113
|
+
this._isPaused = true;
|
|
114
|
+
}
|
|
115
|
+
resume() {
|
|
116
|
+
this._isPaused = false;
|
|
117
|
+
this._scheduleTick();
|
|
118
|
+
}
|
|
84
119
|
wait() {
|
|
85
120
|
return this.exitWaiter.promise;
|
|
86
121
|
}
|
package/dist/process.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAU,KAAK,
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
CHANGED
|
@@ -10,7 +10,11 @@ export type ExitMessage = {
|
|
|
10
10
|
};
|
|
11
11
|
declare function watchExit<Args, State, InMessage extends Message, OutMessage extends (Message | ExitMessage)>(process: Process<Args, State, InMessage, OutMessage>): (ctx: ProcessCtx<InMessage, OutMessage>, arg0: Args) => Generator<State | null, void, InMessage>;
|
|
12
12
|
type DeferCb = () => void;
|
|
13
|
-
|
|
13
|
+
export type DeferredCall = {
|
|
14
|
+
cancel: () => void;
|
|
15
|
+
flush: () => void;
|
|
16
|
+
};
|
|
17
|
+
declare function defer(fn: DeferCb): DeferredCall;
|
|
14
18
|
export type Waiter = {
|
|
15
19
|
promise: Promise<void>;
|
|
16
20
|
resolve: NotifyFn;
|
package/dist/util.js
CHANGED
|
@@ -20,8 +20,25 @@ function watchExit(process) {
|
|
|
20
20
|
}
|
|
21
21
|
function defer(fn) {
|
|
22
22
|
const g = globalThis;
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
function schedule(deferFn, cancelFn) {
|
|
24
|
+
const taskId = deferFn(fn);
|
|
25
|
+
return () => cancelFn(taskId);
|
|
26
|
+
}
|
|
27
|
+
let cancel;
|
|
28
|
+
if (g.setImmediate && g.clearImmediate) {
|
|
29
|
+
cancel = schedule(g.setImmediate, g.clearImmediate);
|
|
30
|
+
}
|
|
31
|
+
else if (g.requestIdleCallback && g.cancelIdleCallback) {
|
|
32
|
+
cancel = schedule(g.requestIdleCallback, g.cancelIdleCallback);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
cancel = schedule((f) => setTimeout(f, 0), clearTimeout);
|
|
36
|
+
}
|
|
37
|
+
function flush() {
|
|
38
|
+
cancel();
|
|
39
|
+
fn();
|
|
40
|
+
}
|
|
41
|
+
return { flush, cancel };
|
|
25
42
|
}
|
|
26
43
|
function makeWaiter() {
|
|
27
44
|
let resolve;
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAGA,SAAS,QAAQ,CAAC,KAAc,EAAE,GAAG,IAAoB;IACvD,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;KACtB;AACH,CAAC;AAMD,QAAQ,CAAC,CAAC,WAAW,CAAI,IAAY,EAAE,EAAsB,EAAE,UAAmB,GAAE,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK;IAC9G,IAAI,GAAM,CAAC;IACX,OAAM,CAAC,OAAO,EAAE,EAAE;QAChB,GAAG,GAAG,MAAM,IAAI,CAAC;QACjB,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,EAAE,CAAC,GAAG,CAAC,CAAC;KACT;AACH,CAAC;AAOD,SAAS,SAAS,CAAqF,OAAoD;IACzJ,OAAO,QAAQ,CAAC,EAAE,GAAsC,EAAE,IAAU;QAClE,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,EAAe,CAAC,CAAC;IACnE,CAAC,CAAA;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAGA,SAAS,QAAQ,CAAC,KAAc,EAAE,GAAG,IAAoB;IACvD,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;KACtB;AACH,CAAC;AAMD,QAAQ,CAAC,CAAC,WAAW,CAAI,IAAY,EAAE,EAAsB,EAAE,UAAmB,GAAE,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK;IAC9G,IAAI,GAAM,CAAC;IACX,OAAM,CAAC,OAAO,EAAE,EAAE;QAChB,GAAG,GAAG,MAAM,IAAI,CAAC;QACjB,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,EAAE,CAAC,GAAG,CAAC,CAAC;KACT;AACH,CAAC;AAOD,SAAS,SAAS,CAAqF,OAAoD;IACzJ,OAAO,QAAQ,CAAC,EAAE,GAAsC,EAAE,IAAU;QAClE,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,EAAe,CAAC,CAAC;IACnE,CAAC,CAAA;AACH,CAAC;AAkBD,SAAS,KAAK,CAAC,EAAW;IACxB,MAAM,CAAC,GAAG,UAA0B,CAAC;IACrC,SAAS,QAAQ,CAAC,OAAc,EAAE,QAAgB;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,OAAO,GAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,MAAkB,CAAC;IACvB,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,cAAc,EAAE;QACtC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;KACrD;SAAM,IAAI,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,kBAAkB,EAAE;QACxD,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC;KAChE;SAAM;QACL,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;KAC1D;IAED,SAAS,KAAK;QACZ,MAAM,EAAE,CAAC;QACT,EAAE,EAAE,CAAC;IACP,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAKD,SAAS,UAAU;IACjB,IAAI,OAAgB,CAAC;IACrB,IAAI,OAAO,GAAG,IAAI,OAAO,CAAO,QAAQ,CAAC,EAAE;QACzC,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,OAAmB,EAAC,CAAC;AACjD,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
|