@zajno/common 1.5.8 → 1.5.9

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.
Files changed (88) hide show
  1. package/coverage/clover.xml +149 -124
  2. package/coverage/coverage-final.json +14 -14
  3. package/coverage/lcov-report/index.html +30 -30
  4. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  6. package/coverage/lcov-report/src/async/arrays.ts.html +5 -5
  7. package/coverage/lcov-report/src/async/index.html +21 -21
  8. package/coverage/lcov-report/src/async/timeout.ts.html +115 -13
  9. package/coverage/lcov-report/src/cache.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/index.html +1 -1
  15. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  21. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  22. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  23. package/coverage/lcov-report/src/event.ts.html +67 -31
  24. package/coverage/lcov-report/src/fields/index.html +1 -1
  25. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  26. package/coverage/lcov-report/src/functions.ts.html +1 -1
  27. package/coverage/lcov-report/src/index.html +19 -19
  28. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  29. package/coverage/lcov-report/src/logger/batch.ts.html +2 -2
  30. package/coverage/lcov-report/src/logger/console.ts.html +5 -5
  31. package/coverage/lcov-report/src/logger/index.html +1 -1
  32. package/coverage/lcov-report/src/logger/index.ts.html +22 -22
  33. package/coverage/lcov-report/src/logger/named.ts.html +13 -13
  34. package/coverage/lcov-report/src/logger/proxy.ts.html +7 -7
  35. package/coverage/lcov-report/src/math/arrays.ts.html +23 -23
  36. package/coverage/lcov-report/src/math/calc.ts.html +9 -9
  37. package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
  38. package/coverage/lcov-report/src/math/index.html +1 -1
  39. package/coverage/lcov-report/src/math/index.ts.html +6 -6
  40. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  41. package/coverage/lcov-report/src/observingCache.ts.html +1 -1
  42. package/coverage/lcov-report/src/queue/index.html +1 -1
  43. package/coverage/lcov-report/src/queue/parallel.ts.html +2 -2
  44. package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
  45. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  46. package/coverage/lcov-report/src/types.ts.html +5 -5
  47. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  48. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  49. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  50. package/coverage/lcov-report/src/validation/index.html +1 -1
  51. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  52. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  53. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  54. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
  56. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  57. package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +1 -1
  58. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  59. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  60. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  61. package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
  62. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  63. package/coverage/lcov-report/src/viewModels/index.html +1 -1
  64. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  65. package/coverage/lcov.info +226 -173
  66. package/lib/async/timeout.d.ts +5 -0
  67. package/lib/async/timeout.d.ts.map +1 -1
  68. package/lib/async/timeout.js +30 -1
  69. package/lib/async/timeout.js.map +1 -1
  70. package/lib/event.d.ts +2 -0
  71. package/lib/event.d.ts.map +1 -1
  72. package/lib/event.js +12 -1
  73. package/lib/event.js.map +1 -1
  74. package/lib/lazy.d.ts +2 -0
  75. package/lib/lazy.d.ts.map +1 -1
  76. package/lib/lazy.js +6 -1
  77. package/lib/lazy.js.map +1 -1
  78. package/lib/queue/parallel.d.ts +1 -1
  79. package/lib/queue/parallel.d.ts.map +1 -1
  80. package/lib/queue/parallel.js +1 -1
  81. package/lib/queue/parallel.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/async/__tests__/timeout.test.ts +74 -0
  84. package/src/async/timeout.ts +34 -0
  85. package/src/event.ts +12 -0
  86. package/src/lazy.ts +8 -1
  87. package/src/queue/__tests__/parallel.test.ts +2 -2
  88. package/src/queue/parallel.ts +1 -1
@@ -1,3 +1,8 @@
1
1
  export declare function setTimeoutAsync(ms: number, useCancel?: (cb: () => void) => void): Promise<void>;
2
2
  export declare function setTimeoutFramesAsync(frames: number): Promise<void>;
3
+ export declare function timeoutPromise<T>(p: Promise<T>, timeoutMs: number, waitForMinElapsed?: number): Promise<{
4
+ resolved: T;
5
+ timedOut?: boolean;
6
+ elapsed: number;
7
+ }>;
3
8
  //# sourceMappingURL=timeout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAW,iBA0BrF;AAID,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,iBAkBnD"}
1
+ {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAW,iBA0BrF;AAID,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,iBAkBnD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgC7J"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setTimeoutFramesAsync = exports.setTimeoutAsync = void 0;
3
+ exports.timeoutPromise = exports.setTimeoutFramesAsync = exports.setTimeoutAsync = void 0;
4
4
  function setTimeoutAsync(ms, useCancel = null) {
5
5
  let canceled = false;
6
6
  let _reject;
@@ -46,4 +46,33 @@ function setTimeoutFramesAsync(frames) {
46
46
  });
47
47
  }
48
48
  exports.setTimeoutFramesAsync = setTimeoutFramesAsync;
49
+ function timeoutPromise(p, timeoutMs, waitForMinElapsed) {
50
+ const started = Date.now();
51
+ return new Promise((resolve, reject) => {
52
+ let finished = false;
53
+ const finish = (res, timedOut) => {
54
+ if (finished) {
55
+ return;
56
+ }
57
+ finished = true;
58
+ const getElapsed = () => (Date.now() - started);
59
+ const doFinish = () => resolve({ resolved: res, timedOut: timedOut, elapsed: getElapsed() });
60
+ const left = waitForMinElapsed != null ? (waitForMinElapsed - getElapsed()) : -1;
61
+ if (left >= 0) {
62
+ setTimeout(doFinish, left);
63
+ }
64
+ else {
65
+ doFinish();
66
+ }
67
+ };
68
+ const timeoutRef = setTimeout(() => {
69
+ finish(undefined, true);
70
+ }, timeoutMs);
71
+ p.then(res => {
72
+ clearTimeout(timeoutRef);
73
+ finish(res, false);
74
+ }).catch(reject);
75
+ });
76
+ }
77
+ exports.timeoutPromise = timeoutPromise;
49
78
  //# sourceMappingURL=timeout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":";;;AACA,SAAgB,eAAe,CAAC,EAAU,EAAE,YAAsC,IAAI;IAClF,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAmB,CAAC;IACxB,IAAI,KAAU,CAAC;IACf,MAAM,GAAG,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,OAAO,GAAG,MAAM,CAAC;QACjB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,EAAE,CAAC;aACb;QACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE;QACX,MAAM,QAAQ,GAAG,GAAG,EAAE;YAClB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,OAAO,EAAE;gBACT,OAAO,EAAE,CAAC;aACb;QACL,CAAC,CAAC;QACF,SAAS,CAAC,QAAQ,CAAC,CAAC;KACvB;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AA1BD,0CA0BC;AAED,kCAAkC;AAElC,SAAgB,qBAAqB,CAAC,MAAc;IAChD,IAAI,OAAO,qBAAqB,KAAK,WAAW,EAAE;QAC9C,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;KAC7G;IAED,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;QAC/B,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC;QAEvB,MAAM,EAAE,GAAG,GAAG,EAAE;YACZ,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE;gBACb,OAAO,EAAE,CAAC;aACb;iBAAM;gBACH,qBAAqB,CAAC,EAAE,CAAC,CAAC;aAC7B;QACL,CAAC,CAAC;QAEF,EAAE,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACP,CAAC;AAlBD,sDAkBC"}
1
+ {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":"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"}
package/lib/event.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Predicate } from './types';
1
2
  import './async/arrays';
2
3
  import { ILogger } from './logger';
3
4
  export declare type EventHandler<T = any> = (data?: T) => void | Promise<void>;
@@ -18,4 +19,5 @@ export declare class Event<T = any> implements IEvent<T> {
18
19
  expose(): IEvent<T>;
19
20
  private logError;
20
21
  }
22
+ export declare function oneTimeSubscription<T>(e: IEvent<T>, filter?: Predicate<T>): Promise<T>;
21
23
  //# sourceMappingURL=event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,OAAO,EAAE,OAAO,EAAgB,MAAM,UAAU,CAAC;AAEjD,oBAAY,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvE,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,GAAG;IAC3B,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IACzC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACvC;AAED,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,OAAO,CAAiB;;gBAGpB,MAAM,CAAC,EAAE,OAAO;gBAChB,IAAI,CAAC,EAAE,MAAM;IAQlB,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAOxC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAInC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAeV,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAqB9C,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;IAI1B,OAAO,CAAC,QAAQ;CAGnB"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,gBAAgB,CAAC;AAExB,OAAO,EAAE,OAAO,EAAgB,MAAM,UAAU,CAAC;AAEjD,oBAAY,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvE,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,GAAG;IAC3B,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IACzC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACvC;AAED,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,OAAO,CAAiB;;gBAGpB,MAAM,CAAC,EAAE,OAAO;gBAChB,IAAI,CAAC,EAAE,MAAM;IAQlB,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAOxC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAInC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAeV,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAqB9C,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;IAI1B,OAAO,CAAC,QAAQ;CAGnB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAStF"}
package/lib/event.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Event = void 0;
3
+ exports.oneTimeSubscription = exports.Event = void 0;
4
4
  require("./async/arrays");
5
5
  const arrays_1 = require("./async/arrays");
6
6
  const logger_1 = require("./logger");
@@ -60,4 +60,15 @@ class Event {
60
60
  }
61
61
  }
62
62
  exports.Event = Event;
63
+ function oneTimeSubscription(e, filter) {
64
+ return new Promise((resolve) => {
65
+ const unsub = e.on(v => {
66
+ if (!filter || filter(v)) {
67
+ unsub();
68
+ resolve(v);
69
+ }
70
+ });
71
+ });
72
+ }
73
+ exports.oneTimeSubscription = oneTimeSubscription;
63
74
  //# sourceMappingURL=event.js.map
package/lib/event.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":";;;AAAA,0BAAwB;AACxB,2CAA8C;AAC9C,qCAAiD;AASjD,MAAa,KAAK;IAQd,YAAY,YAA+B;QAPnC,cAAS,GAAsB,EAAE,CAAC;QAClC,YAAO,GAAY,IAAI,CAAC;QAO5B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,CAAC;YAC9D,CAAC,CAAC,IAAA,qBAAY,EAAC,UAAU,YAAY,IAAI,GAAG,GAAG,CAAC;YAChD,CAAC,CAAC,YAAY,CAAC;IACvB,CAAC;IAEM,EAAE,CAAC,OAAwB;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC,CAAC;IACN,CAAC;IAEM,GAAG,CAAC,OAAwB;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEM,OAAO,CAAC,IAAQ;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACxB,OAAO;SACV;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACZ,IAAI;gBACA,EAAE,CAAC,IAAI,CAAC,CAAC;aACZ;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;aAChC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAAQ;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACxB,OAAO,EAAE,CAAC;SACb;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,MAAM,IAAA,qBAAY,EAAC,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,EAAE;YACjD,IAAI;gBACA,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;aAClB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,IAAO,EAAE,EAAmB,EAAE,GAAU;QACrD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,IAAI,aAAa,EAAE,CAAC,IAAI,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC/F,CAAC;CACJ;AApED,sBAoEC"}
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":";;;AACA,0BAAwB;AACxB,2CAA8C;AAC9C,qCAAiD;AASjD,MAAa,KAAK;IAQd,YAAY,YAA+B;QAPnC,cAAS,GAAsB,EAAE,CAAC;QAClC,YAAO,GAAY,IAAI,CAAC;QAO5B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,CAAC;YAC9D,CAAC,CAAC,IAAA,qBAAY,EAAC,UAAU,YAAY,IAAI,GAAG,GAAG,CAAC;YAChD,CAAC,CAAC,YAAY,CAAC;IACvB,CAAC;IAEM,EAAE,CAAC,OAAwB;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC,CAAC;IACN,CAAC;IAEM,GAAG,CAAC,OAAwB;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEM,OAAO,CAAC,IAAQ;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACxB,OAAO;SACV;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACZ,IAAI;gBACA,EAAE,CAAC,IAAI,CAAC,CAAC;aACZ;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;aAChC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAAQ;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACxB,OAAO,EAAE,CAAC;SACb;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,MAAM,IAAA,qBAAY,EAAC,EAAE,EAAE,KAAK,EAAE,EAAmB,EAAE,EAAE;YACjD,IAAI;gBACA,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;aAClB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,IAAO,EAAE,EAAmB,EAAE,GAAU;QACrD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,IAAI,aAAa,EAAE,CAAC,IAAI,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC/F,CAAC;CACJ;AApED,sBAoEC;AAED,SAAgB,mBAAmB,CAAI,CAAY,EAAE,MAAqB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACnB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;gBACtB,KAAK,EAAE,CAAC;gBACR,OAAO,CAAC,CAAC,CAAC,CAAC;aACd;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AATD,kDASC"}
package/lib/lazy.d.ts CHANGED
@@ -15,8 +15,10 @@ export declare class LazyPromise<T> implements IDisposable {
15
15
  private _instance;
16
16
  private _busy;
17
17
  private _loaded;
18
+ private _promise;
18
19
  constructor(_factory: () => Promise<T>, initial?: T);
19
20
  get busy(): boolean;
21
+ get promise(): Promise<T>;
20
22
  get(): T;
21
23
  private setInstance;
22
24
  reset(): void;
package/lib/lazy.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAE,YAAW,WAAW;IAKnC,OAAO,CAAC,QAAQ;IAF5B,OAAO,CAAC,SAAS,CAAW;gBAER,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IAIvC,IAAI,QAAQ,YAAqC;IAEjD,IAAI,KAAK,MAKR;IAED,OAAO;IAIP,KAAK;IAIL,OAAO,aAAsB;CAChC;AAED,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,WAAW;IAW1C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT5B,OAAO,CAAC,SAAS,CAAW;IAG5B,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,OAAO,CAAS;gBAGH,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAQ;IAMtC,IAAI,IAAI,YAAyB;IAEjC,GAAG;IAUH,OAAO,CAAC,WAAW,CAMjB;IAGF,KAAK;IAML,OAAO,aAAsB;CAChC"}
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAE,YAAW,WAAW;IAKnC,OAAO,CAAC,QAAQ;IAF5B,OAAO,CAAC,SAAS,CAAW;gBAER,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IAIvC,IAAI,QAAQ,YAAqC;IAEjD,IAAI,KAAK,MAKR;IAED,OAAO;IAIP,KAAK;IAIL,OAAO,aAAsB;CAChC;AAED,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,WAAW;IAY1C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV5B,OAAO,CAAC,SAAS,CAAW;IAG5B,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAoB;gBAGf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAQ;IAMtC,IAAI,IAAI,YAAyB;IAEjC,IAAI,OAAO,eAGV;IAED,GAAG;IAWH,OAAO,CAAC,WAAW,CAMjB;IAGF,KAAK;IAML,OAAO,aAAsB;CAChC"}
package/lib/lazy.js CHANGED
@@ -36,6 +36,7 @@ class LazyPromise {
36
36
  this._instance = null;
37
37
  this._busy = false;
38
38
  this._loaded = false;
39
+ this._promise = null;
39
40
  this.setInstance = (res) => {
40
41
  const wasBusy = this._busy;
41
42
  this._busy = false;
@@ -47,10 +48,14 @@ class LazyPromise {
47
48
  this._instance = initial;
48
49
  }
49
50
  get busy() { return this._busy; }
51
+ get promise() {
52
+ return this._promise;
53
+ }
50
54
  get() {
51
55
  if (!this._loaded && !this._busy) {
52
56
  this._busy = true;
53
- this._factory().then(this.setInstance);
57
+ this._promise = this._factory();
58
+ this._promise.then(this.setInstance);
54
59
  }
55
60
  return this._instance;
56
61
  }
package/lib/lazy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":";;;;AACA,+BAA0D;AAE1D,MAAqB,IAAI;IAKrB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAF/B,cAAS,GAAM,IAAI,CAAC;QAuB5B,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QApBzB,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IAEjD,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;CAGJ;AAxBG;IADC,iBAAU,CAAC,GAAG;;uCACa;AAHhC,uBA2BC;AAED,MAAa,WAAW;IAUpB,YACqB,QAA0B,EAC1B,UAAa,IAAI;QADjB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAAU;QAT9B,cAAS,GAAM,IAAI,CAAC;QAGpB,UAAK,GAAG,KAAK,CAAC;QAEd,YAAO,GAAG,KAAK,CAAC;QAsBhB,gBAAW,GAAG,CAAC,GAAM,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC;QASF,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QA/BzB,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjC,GAAG;QACC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC1C;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAYD,KAAK;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;CAGJ;AA3CG;IADC,iBAAU,CAAC,GAAG;;8CACa;AAG5B;IADC,iBAAU;;0CACW;AAwBtB;IADC,aAAM;;gDAOL;AAGF;IADC,aAAM;;;;wCAKN;AA3CL,kCA8CC"}
1
+ {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":";;;;AACA,+BAA0D;AAE1D,MAAqB,IAAI;IAKrB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAF/B,cAAS,GAAM,IAAI,CAAC;QAuB5B,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QApBzB,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IAEjD,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;CAGJ;AAxBG;IADC,iBAAU,CAAC,GAAG;;uCACa;AAHhC,uBA2BC;AAED,MAAa,WAAW;IAWpB,YACqB,QAA0B,EAC1B,UAAa,IAAI;QADjB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAAU;QAV9B,cAAS,GAAM,IAAI,CAAC;QAGpB,UAAK,GAAG,KAAK,CAAC;QAEd,YAAO,GAAG,KAAK,CAAC;QAChB,aAAQ,GAAe,IAAI,CAAC;QA4B5B,gBAAW,GAAG,CAAC,GAAM,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC;QASF,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QArCzB,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjC,IAAI,OAAO;QAEP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,GAAG;QACC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAYD,KAAK;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;CAGJ;AAlDG;IADC,iBAAU,CAAC,GAAG;;8CACa;AAG5B;IADC,iBAAU;;0CACW;AA+BtB;IADC,aAAM;;gDAOL;AAGF;IADC,aAAM;;;;wCAKN;AAlDL,kCAqDC"}
@@ -7,7 +7,7 @@ export declare class ParallelQueue {
7
7
  private _logger;
8
8
  private readonly _beforePriorityRun;
9
9
  private readonly _afterPriorityRun;
10
- get currentoPriority(): number;
10
+ get currentPriority(): number;
11
11
  get inProgress(): boolean;
12
12
  get beforePriorityRun(): import("../event").IEvent<number>;
13
13
  get afterPriorityRun(): import("../event").IEvent<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"parallel.d.ts","sourceRoot":"","sources":["../../src/queue/parallel.ts"],"names":[],"mappings":"AAGA,oBAAY,SAAS,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAInD,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IAEtD,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuB;IAC1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuB;IAEzD,IAAW,gBAAgB,WAAiC;IAC5D,IAAW,UAAU,YAA+B;IAEpD,IAAW,iBAAiB,sCAA+C;IAC3E,IAAW,gBAAgB,sCAA8C;IAElE,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM;IAK/B,8DAA8D;IACvD,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI;IAkC/C,KAAK;IAgBlB,OAAO,CAAC,QAAQ;YAUF,aAAa;IAqC3B,OAAO,CAAC,cAAc,CAOpB;CACL"}
1
+ {"version":3,"file":"parallel.d.ts","sourceRoot":"","sources":["../../src/queue/parallel.ts"],"names":[],"mappings":"AAGA,oBAAY,SAAS,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAInD,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IAEtD,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuB;IAC1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuB;IAEzD,IAAW,eAAe,WAAiC;IAC3D,IAAW,UAAU,YAA+B;IAEpD,IAAW,iBAAiB,sCAA+C;IAC3E,IAAW,gBAAgB,sCAA8C;IAElE,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM;IAK/B,8DAA8D;IACvD,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI;IAkC/C,KAAK;IAgBlB,OAAO,CAAC,QAAQ;YAUF,aAAa;IAqC3B,OAAO,CAAC,cAAc,CAOpB;CACL"}
@@ -23,7 +23,7 @@ class ParallelQueue {
23
23
  }
24
24
  };
25
25
  }
26
- get currentoPriority() { return this._currentIndex; }
26
+ get currentPriority() { return this._currentIndex; }
27
27
  get inProgress() { return this._inProgress; }
28
28
  get beforePriorityRun() { return this._beforePriorityRun.expose(); }
29
29
  get afterPriorityRun() { return this._afterPriorityRun.expose(); }
@@ -1 +1 @@
1
- {"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../src/queue/parallel.ts"],"names":[],"mappings":";;;AAAA,sCAAkD;AAClD,oCAAiC;AAMjC,MAAa,aAAa;IAA1B;QAEqB,YAAO,GAA0B,EAAG,CAAC;QAE9C,gBAAW,GAAY,IAAI,CAAC;QAC5B,kBAAa,GAAG,CAAC,CAAC;QAClB,cAAS,GAAG,CAAC,CAAC;QAEd,YAAO,GAAY,IAAI,CAAC;QAEf,uBAAkB,GAAG,IAAI,aAAK,EAAU,CAAC;QACzC,sBAAiB,GAAG,IAAI,aAAK,EAAU,CAAC;QA+GjD,mBAAc,GAAG,KAAK,EAAE,CAAY,EAAE,QAAgB,EAAE,KAAc,EAAE,EAAE;;YAC9E,IAAI;gBACA,MAAM,CAAC,EAAE,CAAC;aACb;YAAC,OAAO,GAAG,EAAE;gBACV,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,4CAA4C,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;gBACxG,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;aAC5B;QACL,CAAC,CAAC;IACN,CAAC;IArHG,IAAW,gBAAgB,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5D,IAAW,UAAU,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpD,IAAW,iBAAiB,KAAK,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3E,IAAW,gBAAgB,KAAK,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAElE,UAAU,CAAC,IAAa;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAY,EAAC,UAAU,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,8DAA8D;IACvD,OAAO,CAAC,EAAa,EAAE,QAAiB;QAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAEpC,+DAA+D;QAC/D,0BAA0B;QAC1B,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;YAC1E,wBAAwB;YACxB,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACjC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;SACtB;QAED,+BAA+B;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAE7C,uDAAuD;QACvD,OAAO,GAAG,EAAE;YACR,oEAAoE;YACpE,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;gBACrD,OAAO,KAAK,CAAC;aAChB;YAED,2BAA2B;YAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACR,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACf,mEAAmE;gBACnE,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,KAAK;;QACd,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI;YACA,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACV,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,WAAmB,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,EAAE;YACJ,CAAC,GAAG,EAAE,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC9B;QAED,OAAO,CAAC,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,aAAa;;QACvB,IAAI,OAAO,GAAgB,IAAI,CAAC;QAChC,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE/D,OAAO,MAAA,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,0CAAE,MAAM,EAAE;YACzD,IAAI,UAAU,EAAE,GAAG,CAAC,EAAE;gBAClB,MAAM;aACT;YAED,MAAA,IAAI,CAAC,OAAO,0CAAE,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAE5F,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAEnB,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3G;QAED,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,IAAI,UAAU,KAAK,CAAC,EAAE;YACtC,MAAA,IAAI,CAAC,OAAO,0CAAE,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;SAC9E;QAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE9D,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACpC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;YACvB,6BAA6B;YAC7B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,MAAA,IAAI,CAAC,OAAO,0CAAE,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxE,OAAO;SACV;QAED,EAAE,IAAI,CAAC,aAAa,CAAC;QACrB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;CAUJ;AAlID,sCAkIC"}
1
+ {"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../src/queue/parallel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "1.5.8",
3
+ "version": "1.5.9",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,74 @@
1
+
2
+ import { timeoutPromise } from '../timeout';
3
+ import { Event, oneTimeSubscription } from '../../event';
4
+
5
+ describe('Timeouts', () => {
6
+
7
+ describe('one-time subscription to event', () => {
8
+ const createOneTimePromise = (finishOnStep = 3, totalSteps = 5) => {
9
+ const e = new Event<number>();
10
+ let currentValue = 0;
11
+
12
+ const p = oneTimeSubscription(e, v => v === finishOnStep);
13
+
14
+ const intervalRef = setInterval(() => {
15
+ e.trigger(++currentValue);
16
+ if (currentValue === totalSteps) {
17
+ clearInterval(intervalRef);
18
+ }
19
+ }, 100);
20
+
21
+ return p;
22
+ };
23
+
24
+ it('just works as expected', async () => {
25
+
26
+ const p = createOneTimePromise();
27
+
28
+ await expect(p).resolves.toBe(3);
29
+ });
30
+
31
+ it('works with timing out', async () => {
32
+ const p = createOneTimePromise();
33
+
34
+ const timeoutResult = timeoutPromise(p, 200);
35
+
36
+ await expect(timeoutResult).resolves.not.toBeNull();
37
+
38
+ const res = await timeoutResult;
39
+
40
+ expect(res.resolved).toBeUndefined();
41
+ expect(res.timedOut).toBe(true);
42
+ expect(res.elapsed).toBeLessThanOrEqual(210);
43
+ });
44
+
45
+ it('works without timing out', async () => {
46
+ const p = createOneTimePromise();
47
+
48
+ const timeoutResult = timeoutPromise(p, 400);
49
+
50
+ await expect(timeoutResult).resolves.not.toBeNull();
51
+
52
+ const res = await timeoutResult;
53
+
54
+ expect(res.resolved).toBe(3);
55
+ expect(res.timedOut).toBe(false);
56
+ expect(res.elapsed).toBeLessThanOrEqual(410);
57
+ });
58
+
59
+ it('works without timing out with minimal run', async () => {
60
+ const p = createOneTimePromise();
61
+
62
+ const timeoutResult = timeoutPromise(p, 400, 350);
63
+
64
+ await expect(timeoutResult).resolves.not.toBeNull();
65
+
66
+ const res = await timeoutResult;
67
+
68
+ expect(res.resolved).toBe(3);
69
+ expect(res.timedOut).toBe(false);
70
+ expect(res.elapsed).toBeGreaterThanOrEqual(349);
71
+ expect(res.elapsed).toBeLessThanOrEqual(410);
72
+ });
73
+ });
74
+ });
@@ -48,3 +48,37 @@ export function setTimeoutFramesAsync(frames: number) {
48
48
  cb();
49
49
  });
50
50
  }
51
+
52
+ export function timeoutPromise<T>(p: Promise<T>, timeoutMs: number, waitForMinElapsed?: number): Promise<{ resolved: T, timedOut?: boolean, elapsed: number }> {
53
+ const started = Date.now();
54
+
55
+ return new Promise((resolve, reject) => {
56
+ let finished = false;
57
+ const finish = (res: T, timedOut: boolean) => {
58
+ if (finished) {
59
+ return;
60
+ }
61
+
62
+ finished = true;
63
+
64
+ const getElapsed = () => (Date.now() - started);
65
+ const doFinish = () => resolve({ resolved: res, timedOut: timedOut, elapsed: getElapsed() });
66
+
67
+ const left = waitForMinElapsed != null ? (waitForMinElapsed - getElapsed()) : -1;
68
+ if (left >= 0) {
69
+ setTimeout(doFinish, left);
70
+ } else {
71
+ doFinish();
72
+ }
73
+ };
74
+
75
+ const timeoutRef = setTimeout(() => {
76
+ finish(undefined, true);
77
+ }, timeoutMs);
78
+
79
+ p.then(res => {
80
+ clearTimeout(timeoutRef);
81
+ finish(res, false);
82
+ }).catch(reject);
83
+ });
84
+ }
package/src/event.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Predicate } from './types';
1
2
  import './async/arrays';
2
3
  import { forEachAsync } from './async/arrays';
3
4
  import { ILogger, createLogger } from './logger';
@@ -78,3 +79,14 @@ export class Event<T = any> implements IEvent<T> {
78
79
  this._logger.error(`[Event.${typeof data}] Handler ${cb.name} thrown an exception: `, err);
79
80
  }
80
81
  }
82
+
83
+ export function oneTimeSubscription<T>(e: IEvent<T>, filter?: Predicate<T>): Promise<T> {
84
+ return new Promise<T>((resolve) => {
85
+ const unsub = e.on(v => {
86
+ if (!filter || filter(v)) {
87
+ unsub();
88
+ resolve(v);
89
+ }
90
+ });
91
+ });
92
+ }
package/src/lazy.ts CHANGED
@@ -39,6 +39,7 @@ export class LazyPromise<T> implements IDisposable {
39
39
  private _busy = false;
40
40
 
41
41
  private _loaded = false;
42
+ private _promise: Promise<T> = null;
42
43
 
43
44
  constructor(
44
45
  private readonly _factory: () => Promise<T>,
@@ -50,10 +51,16 @@ export class LazyPromise<T> implements IDisposable {
50
51
 
51
52
  get busy() { return this._busy; }
52
53
 
54
+ get promise() {
55
+
56
+ return this._promise;
57
+ }
58
+
53
59
  get() {
54
60
  if (!this._loaded && !this._busy) {
55
61
  this._busy = true;
56
- this._factory().then(this.setInstance);
62
+ this._promise = this._factory();
63
+ this._promise.then(this.setInstance);
57
64
  }
58
65
 
59
66
  return this._instance;
@@ -26,7 +26,7 @@ describe('ParallelQueue', () => {
26
26
  const res = q.start();
27
27
  expect(q.inProgress).toBeTruthy();
28
28
 
29
- expect(q.currentoPriority).toBe(0);
29
+ expect(q.currentPriority).toBe(0);
30
30
 
31
31
  const f3 = createLoader();
32
32
  const f4 = createLoader();
@@ -40,7 +40,7 @@ describe('ParallelQueue', () => {
40
40
  await expect(res).resolves.toBe(true);
41
41
 
42
42
  expect(q.inProgress).toBeFalsy();
43
- expect(q.currentoPriority).toBe(1);
43
+ expect(q.currentPriority).toBe(1);
44
44
 
45
45
  expect(f1).toHaveBeenCalledBefore(f2);
46
46
  expect(f2).toHaveBeenCalledAfter(f1);
@@ -18,7 +18,7 @@ export class ParallelQueue {
18
18
  private readonly _beforePriorityRun = new Event<number>();
19
19
  private readonly _afterPriorityRun = new Event<number>();
20
20
 
21
- public get currentoPriority() { return this._currentIndex; }
21
+ public get currentPriority() { return this._currentIndex; }
22
22
  public get inProgress() { return this._inProgress; }
23
23
 
24
24
  public get beforePriorityRun() { return this._beforePriorityRun.expose(); }