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 CHANGED
@@ -1,3 +1,3 @@
1
- import Process, { spawn, Message, ProcessCtx, ProcessFn } from './process.js';
2
- import { ExitMessage, runDispatch } from './util.js';
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
@@ -1,4 +1,4 @@
1
- import Process, { spawn } from './process.js';
2
- import { runDispatch } from './util.js';
1
+ import Process, { spawn } from './process';
2
+ import { runDispatch } from './util';
3
3
  export { Process, spawn, runDispatch };
4
4
  //# sourceMappingURL=index.js.map
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,cAAc,CAAC;AAC9E,OAAO,EAAe,WAAW,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAA+C,CAAA"}
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.js';
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(ret: IteratorResult<State | null, void> | null): void;
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.js';
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._tick(task.next());
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(ret) {
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._tick(this.current.next(msg));
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
- defer(() => this._tick(null));
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAU,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAI7E,CAAC;AAmBF,MAAM,UAAU,KAAK,CAAyF,EAAiD,EAAE,KAAa,EAAE,QAAuC;IACrN,OAAO,CAAC,IAAU,EAA+C,EAAE;QACjE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAqC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AACD,MAAM,IAAI,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC;AAEvB,MAAM,OAAO;IAaX,YAAY,EAAiD,EAAE,KAAa,EAAE,QAAkD;QAC9H,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAGxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAU;QACd,MAAM,GAAG,GAAsC;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAqC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,CAA2E,EAAuD,EAAE,KAAc;QACpJ,OAAO,CAAC,IAAe,EAAqD,EAAE;YAC5E,0CAA0C;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAY,CAAC;YACvD,MAAM,KAAK,GAAI,IAAI,OAAO,CAA0C,EAAE,EAAE,KAAK,EAAE,SAAsC,CAAC,CAAC;YACvH,sDAAsD;YACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAA+D,CAAC,CAAC;YACpF,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAE,GAA8C;QACnD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;QAED,IAAI,GAA0B,CAAC;QAC/B,OAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SAC3B;IACH,CAAC;IAED,aAAa,CAAC,GAAY;QACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,GAAc;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,KAAK,CAAC,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,CAAW;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,GAAG,GAAG,CAAC,EAAE;gBACX,OAAO;aACR;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,CAAA;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,GAAc;QACtB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,EAAE,KAAM,GAA8B,CAAC,GAAG,CAAC,CAAC;SACxF;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;CACF;AAED,eAAe,OAAO,CAAC"}
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
- declare function defer(fn: DeferCb): void;
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
- const setDefer = (g.setImmediate || requestIdleCallback);
24
- setDefer(fn);
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;AAQD,SAAS,KAAK,CAAC,EAAW;IACxB,MAAM,CAAC,GAAG,UAA0B,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,mBAAmB,CAAU,CAAC;IAClE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACf,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"}
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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "posipaki",
4
- "version": "0.6.0",
4
+ "version": "0.6.2",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "scripts": {