@livequery/rpc 2.0.135 → 2.0.139

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.
@@ -1 +1 @@
1
- {"version":3,"file":"RxjsQueue.d.ts","sourceRoot":"","sources":["../src/RxjsQueue.ts"],"names":[],"mappings":"AAIA,qBAAa,SAAS;;gBASN,KAAK,GAAE,MAAU;IAkB7B,WAAW,CAAC,KAAK,EAAE,MAAM;IAIzB,GAAG,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;CAS7B"}
1
+ {"version":3,"file":"RxjsQueue.d.ts","sourceRoot":"","sources":["../src/RxjsQueue.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;;gBAMN,KAAK,GAAE,MAAU;IAI7B,WAAW,CAAC,KAAK,EAAE,MAAM;IAKzB,GAAG,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;CAiB7B"}
package/dist/RxjsQueue.js CHANGED
@@ -1,30 +1,26 @@
1
- import { mergeMap, Subject, switchMap } from "rxjs";
2
1
  export class RxjsQueue {
3
- #limit$ = new Subject();
4
- #task = new Subject();
2
+ #limit;
3
+ #running = 0;
4
+ #queue = [];
5
5
  constructor(limit = 1) {
6
- this.#limit$.pipe(switchMap(limit => (this.#task.pipe(mergeMap(async ({ fn, s, r }) => {
7
- try {
8
- const data = await fn();
9
- s(data);
10
- }
11
- catch (e) {
12
- r(e);
13
- }
14
- }, limit))))).subscribe();
15
- this.#limit$.next(Math.max(1, limit));
6
+ this.#limit = Math.max(1, limit);
16
7
  }
17
8
  updateLimit(limit) {
18
- this.#limit$.next(limit);
9
+ this.#limit = Math.max(1, limit);
10
+ this.#drain();
19
11
  }
20
12
  run(fn) {
21
13
  return new Promise((s, r) => {
22
- this.#task.next({
23
- fn,
24
- s,
25
- r
26
- });
14
+ this.#queue.push({ fn, s, r });
15
+ this.#drain();
27
16
  });
28
17
  }
18
+ #drain() {
19
+ while (this.#running < this.#limit && this.#queue.length > 0) {
20
+ const task = this.#queue.shift();
21
+ this.#running++;
22
+ task.fn().then((v) => { this.#running--; task.s(v); this.#drain(); }, (e) => { this.#running--; task.r(e); this.#drain(); });
23
+ }
24
+ }
29
25
  }
30
26
  //# sourceMappingURL=RxjsQueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RxjsQueue.js","sourceRoot":"","sources":["../src/RxjsQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAIpD,MAAM,OAAO,SAAS;IAElB,OAAO,GAAG,IAAI,OAAO,EAAU,CAAA;IAE/B,KAAK,GAAG,IAAI,OAAO,EAIf,CAAA;IACJ,YAAY,QAAgB,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CACf,IAAI,CAAC,KAAK,CAAC,IAAI,CACX,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;YAC5B,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,CAAA;gBACvB,CAAC,CAAC,IAAI,CAAC,CAAA;YACX,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,CAAC,CAAC,CAAC,CAAC,CAAA;YACR,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,CACZ,CACJ,CAAC,CACL,CAAC,SAAS,EAAE,CAAA;QACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,WAAW,CAAC,KAAa;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG,CAAC,EAAsB;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACZ,EAAE;gBACF,CAAC;gBACD,CAAC;aACJ,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"RxjsQueue.js","sourceRoot":"","sources":["../src/RxjsQueue.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IAElB,MAAM,CAAQ;IACd,QAAQ,GAAG,CAAC,CAAA;IACZ,MAAM,GAA8E,EAAE,CAAA;IAEtF,YAAY,QAAgB,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC;IAED,WAAW,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,MAAM,EAAE,CAAA;IACjB,CAAC;IAED,GAAG,CAAC,EAAsB;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAA;QACjB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG,CAAA;YACjC,IAAI,CAAC,QAAQ,EAAE,CAAA;YACf,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CACV,CAAC,CAAM,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAC,CAAC,EACzD,CAAC,CAAM,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAC,CAAC,CAC5D,CAAA;QACL,CAAC;IACL,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livequery/rpc",
3
- "version": "2.0.135",
3
+ "version": "2.0.139",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",