worker-timers-worker 8.0.10 → 9.0.0

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 (106) hide show
  1. package/build/es2019/factories/clear-timer.d.ts +3 -0
  2. package/build/es2019/factories/clear-timer.d.ts.map +1 -0
  3. package/build/es2019/factories/clear-timer.js +12 -0
  4. package/build/es2019/factories/clear-timer.js.map +1 -0
  5. package/build/es2019/factories/set-timer.d.ts +5 -0
  6. package/build/es2019/factories/set-timer.d.ts.map +1 -0
  7. package/build/es2019/factories/set-timer.js +10 -0
  8. package/build/es2019/factories/set-timer.js.map +1 -0
  9. package/build/es2019/functions/compute-delay-and-expected-callback-time.d.ts +5 -0
  10. package/build/es2019/functions/compute-delay-and-expected-callback-time.d.ts.map +1 -0
  11. package/build/es2019/functions/compute-delay-and-expected-callback-time.js +7 -0
  12. package/build/es2019/functions/compute-delay-and-expected-callback-time.js.map +1 -0
  13. package/build/es2019/functions/set-timeout-callback.d.ts +3 -0
  14. package/build/es2019/functions/set-timeout-callback.d.ts.map +1 -0
  15. package/build/es2019/functions/set-timeout-callback.js +14 -0
  16. package/build/es2019/functions/set-timeout-callback.js.map +1 -0
  17. package/build/es2019/interfaces/index.d.ts +1 -8
  18. package/build/es2019/interfaces/index.d.ts.map +1 -1
  19. package/build/es2019/interfaces/index.js +1 -8
  20. package/build/es2019/interfaces/index.js.map +1 -1
  21. package/build/es2019/interfaces/worker-timers-worker-custom-definition.d.ts +25 -0
  22. package/build/es2019/interfaces/worker-timers-worker-custom-definition.d.ts.map +1 -0
  23. package/build/es2019/interfaces/worker-timers-worker-custom-definition.js +2 -0
  24. package/build/es2019/interfaces/worker-timers-worker-custom-definition.js.map +1 -0
  25. package/build/es2019/module.d.ts.map +1 -1
  26. package/build/es2019/module.js +17 -39
  27. package/build/es2019/module.js.map +1 -1
  28. package/build/es2019/types/index.d.ts +2 -2
  29. package/build/es2019/types/index.d.ts.map +1 -1
  30. package/build/es2019/types/index.js +2 -2
  31. package/build/es2019/types/index.js.map +1 -1
  32. package/build/es2019/types/resolve-set-response-result-promise.d.ts +3 -0
  33. package/build/es2019/types/resolve-set-response-result-promise.d.ts.map +1 -0
  34. package/build/es2019/types/resolve-set-response-result-promise.js +2 -0
  35. package/build/es2019/types/resolve-set-response-result-promise.js.map +1 -0
  36. package/build/es2019/types/worker-timers-worker-definition.d.ts +4 -0
  37. package/build/es2019/types/worker-timers-worker-definition.d.ts.map +1 -0
  38. package/build/es2019/types/worker-timers-worker-definition.js +2 -0
  39. package/build/es2019/types/worker-timers-worker-definition.js.map +1 -0
  40. package/build/es5/bundle.js +73 -90
  41. package/package.json +15 -14
  42. package/src/factories/clear-timer.ts +18 -0
  43. package/src/factories/set-timer.ts +20 -0
  44. package/src/functions/compute-delay-and-expected-callback-time.ts +7 -0
  45. package/src/functions/set-timeout-callback.ts +20 -0
  46. package/src/interfaces/index.ts +1 -8
  47. package/src/interfaces/worker-timers-worker-custom-definition.ts +32 -0
  48. package/src/module.ts +19 -39
  49. package/src/types/index.ts +2 -2
  50. package/src/types/resolve-set-response-result-promise.ts +5 -0
  51. package/src/types/worker-timers-worker-definition.ts +4 -0
  52. package/build/es2019/helpers/timer.d.ts +0 -5
  53. package/build/es2019/helpers/timer.d.ts.map +0 -1
  54. package/build/es2019/helpers/timer.js +0 -45
  55. package/build/es2019/helpers/timer.js.map +0 -1
  56. package/build/es2019/interfaces/broker-event.d.ts +0 -5
  57. package/build/es2019/interfaces/broker-event.d.ts.map +0 -1
  58. package/build/es2019/interfaces/broker-event.js +0 -2
  59. package/build/es2019/interfaces/broker-event.js.map +0 -1
  60. package/build/es2019/interfaces/call-notification.d.ts +0 -10
  61. package/build/es2019/interfaces/call-notification.d.ts.map +0 -1
  62. package/build/es2019/interfaces/call-notification.js +0 -2
  63. package/build/es2019/interfaces/call-notification.js.map +0 -1
  64. package/build/es2019/interfaces/clear-request.d.ts +0 -10
  65. package/build/es2019/interfaces/clear-request.d.ts.map +0 -1
  66. package/build/es2019/interfaces/clear-request.js +0 -2
  67. package/build/es2019/interfaces/clear-request.js.map +0 -1
  68. package/build/es2019/interfaces/clear-response.d.ts +0 -5
  69. package/build/es2019/interfaces/clear-response.d.ts.map +0 -1
  70. package/build/es2019/interfaces/clear-response.js +0 -2
  71. package/build/es2019/interfaces/clear-response.js.map +0 -1
  72. package/build/es2019/interfaces/error-notification.d.ts +0 -8
  73. package/build/es2019/interfaces/error-notification.d.ts.map +0 -1
  74. package/build/es2019/interfaces/error-notification.js +0 -2
  75. package/build/es2019/interfaces/error-notification.js.map +0 -1
  76. package/build/es2019/interfaces/error-response.d.ts +0 -8
  77. package/build/es2019/interfaces/error-response.d.ts.map +0 -1
  78. package/build/es2019/interfaces/error-response.js +0 -2
  79. package/build/es2019/interfaces/error-response.js.map +0 -1
  80. package/build/es2019/interfaces/set-notification.d.ts +0 -12
  81. package/build/es2019/interfaces/set-notification.d.ts.map +0 -1
  82. package/build/es2019/interfaces/set-notification.js +0 -2
  83. package/build/es2019/interfaces/set-notification.js.map +0 -1
  84. package/build/es2019/interfaces/worker-event.d.ts +0 -5
  85. package/build/es2019/interfaces/worker-event.d.ts.map +0 -1
  86. package/build/es2019/interfaces/worker-event.js +0 -2
  87. package/build/es2019/interfaces/worker-event.js.map +0 -1
  88. package/build/es2019/types/broker-message.d.ts +0 -3
  89. package/build/es2019/types/broker-message.d.ts.map +0 -1
  90. package/build/es2019/types/broker-message.js +0 -2
  91. package/build/es2019/types/broker-message.js.map +0 -1
  92. package/build/es2019/types/worker-message.d.ts +0 -3
  93. package/build/es2019/types/worker-message.d.ts.map +0 -1
  94. package/build/es2019/types/worker-message.js +0 -2
  95. package/build/es2019/types/worker-message.js.map +0 -1
  96. package/src/helpers/timer.ts +0 -67
  97. package/src/interfaces/broker-event.ts +0 -5
  98. package/src/interfaces/call-notification.ts +0 -13
  99. package/src/interfaces/clear-request.ts +0 -13
  100. package/src/interfaces/clear-response.ts +0 -5
  101. package/src/interfaces/error-notification.ts +0 -9
  102. package/src/interfaces/error-response.ts +0 -9
  103. package/src/interfaces/set-notification.ts +0 -17
  104. package/src/interfaces/worker-event.ts +0 -5
  105. package/src/types/broker-message.ts +0 -3
  106. package/src/types/worker-message.ts +0 -3
@@ -0,0 +1,3 @@
1
+ import { TResolveSetResponseResultPromise } from '../types';
2
+ export declare const createClearTimer: (identifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]>) => (timerId: number) => boolean;
3
+ //# sourceMappingURL=clear-timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-timer.d.ts","sourceRoot":"","sources":["../../../src/factories/clear-timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAE5D,eAAO,MAAM,gBAAgB,4BAA6B,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC,eAAe,MAAM,YAerI,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const createClearTimer = (identifiersAndResolvers) => (timerId) => {
2
+ const identifiersAndResolver = identifiersAndResolvers.get(timerId);
3
+ if (identifiersAndResolver === undefined) {
4
+ return false;
5
+ }
6
+ const [identifier, resolveSetResponseResultPromise] = identifiersAndResolver;
7
+ clearTimeout(identifier);
8
+ identifiersAndResolvers.delete(timerId);
9
+ resolveSetResponseResultPromise(false);
10
+ return true;
11
+ };
12
+ //# sourceMappingURL=clear-timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-timer.js","sourceRoot":"","sources":["../../../src/factories/clear-timer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,uBAAgF,EAAE,EAAE,CAAC,CAAC,OAAe,EAAE,EAAE;IACtI,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEpE,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,UAAU,EAAE,+BAA+B,CAAC,GAAG,sBAAsB,CAAC;IAE7E,YAAY,CAAC,UAAU,CAAC,CAAC;IACzB,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAExC,+BAA+B,CAAC,KAAK,CAAC,CAAC;IAEvC,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { computeDelayAndExpectedCallbackTime as computeDelayAndExpectedCallbackTimeFunction } from '../functions/compute-delay-and-expected-callback-time';
2
+ import type { setTimeoutCallback as setTimeoutCallbackFunction } from '../functions/set-timeout-callback';
3
+ import { TResolveSetResponseResultPromise } from '../types';
4
+ export declare const createSetTimer: (computeDelayAndExpectedCallbackTime: typeof computeDelayAndExpectedCallbackTimeFunction, identifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]>, setTimeoutCallback: typeof setTimeoutCallbackFunction) => (delay: number, nowAndTimeOrigin: number, timerId: number) => Promise<unknown>;
5
+ //# sourceMappingURL=set-timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-timer.d.ts","sourceRoot":"","sources":["../../../src/factories/set-timer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,IAAI,2CAA2C,EAAE,MAAM,uDAAuD,CAAC;AAChK,OAAO,KAAK,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC1G,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAE5D,eAAO,MAAM,cAAc,wCAEkB,OAAO,2CAA2C,2BAC9D,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC,sBAC5D,OAAO,0BAA0B,aAEjD,MAAM,oBAAoB,MAAM,WAAW,MAAM,qBASxD,CAAC"}
@@ -0,0 +1,10 @@
1
+ export const createSetTimer = (computeDelayAndExpectedCallbackTime, identifiersAndResolvers, setTimeoutCallback) => (delay, nowAndTimeOrigin, timerId) => {
2
+ const { expected, remainingDelay } = computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin);
3
+ return new Promise((resolve) => {
4
+ identifiersAndResolvers.set(timerId, [
5
+ setTimeout(setTimeoutCallback, remainingDelay, expected, identifiersAndResolvers, resolve, timerId),
6
+ resolve
7
+ ]);
8
+ });
9
+ };
10
+ //# sourceMappingURL=set-timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-timer.js","sourceRoot":"","sources":["../../../src/factories/set-timer.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,cAAc,GACvB,CACI,mCAAuF,EACvF,uBAAgF,EAChF,kBAAqD,EACvD,EAAE,CACJ,CAAC,KAAa,EAAE,gBAAwB,EAAE,OAAe,EAAE,EAAE;IACzD,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,mCAAmC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAElG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE;YACjC,UAAU,CAAC,kBAAkB,EAAE,cAAc,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC;YACnG,OAAO;SACV,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const computeDelayAndExpectedCallbackTime: (delay: number, nowAndTimeOrigin: number) => {
2
+ expected: number;
3
+ remainingDelay: number;
4
+ };
5
+ //# sourceMappingURL=compute-delay-and-expected-callback-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute-delay-and-expected-callback-time.d.ts","sourceRoot":"","sources":["../../../src/functions/compute-delay-and-expected-callback-time.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mCAAmC,UAAW,MAAM,oBAAoB,MAAM;;;CAM1F,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const computeDelayAndExpectedCallbackTime = (delay, nowAndTimeOrigin) => {
2
+ const now = performance.now();
3
+ const remainingDelay = delay + nowAndTimeOrigin - now - performance.timeOrigin;
4
+ const expected = now + remainingDelay;
5
+ return { expected, remainingDelay };
6
+ };
7
+ //# sourceMappingURL=compute-delay-and-expected-callback-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute-delay-and-expected-callback-time.js","sourceRoot":"","sources":["../../../src/functions/compute-delay-and-expected-callback-time.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,KAAa,EAAE,gBAAwB,EAAE,EAAE;IAC3F,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAG,KAAK,GAAG,gBAAgB,GAAG,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC;IAC/E,MAAM,QAAQ,GAAG,GAAG,GAAG,cAAc,CAAC;IAEtC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AACxC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TResolveSetResponseResultPromise } from '../types';
2
+ export declare const setTimeoutCallback: (expected: number, identifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]>, resolveSetResponseResultPromise: TResolveSetResponseResultPromise, timerId: number) => void;
3
+ //# sourceMappingURL=set-timeout-callback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-timeout-callback.d.ts","sourceRoot":"","sources":["../../../src/functions/set-timeout-callback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAE5D,eAAO,MAAM,kBAAkB,aACjB,MAAM,2BACS,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC,mCAC/C,gCAAgC,WACxD,MAAM,SAalB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export const setTimeoutCallback = (expected, identifiersAndResolvers, resolveSetResponseResultPromise, timerId) => {
2
+ const remainingDelay = expected - performance.now();
3
+ if (remainingDelay > 0) {
4
+ identifiersAndResolvers.set(timerId, [
5
+ setTimeout(setTimeoutCallback, remainingDelay, expected, identifiersAndResolvers, resolveSetResponseResultPromise, timerId),
6
+ resolveSetResponseResultPromise
7
+ ]);
8
+ }
9
+ else {
10
+ identifiersAndResolvers.delete(timerId);
11
+ resolveSetResponseResultPromise(true);
12
+ }
13
+ };
14
+ //# sourceMappingURL=set-timeout-callback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-timeout-callback.js","sourceRoot":"","sources":["../../../src/functions/set-timeout-callback.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,QAAgB,EAChB,uBAAgF,EAChF,+BAAiE,EACjE,OAAe,EACjB,EAAE;IACA,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEpD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACrB,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE;YACjC,UAAU,CAAC,kBAAkB,EAAE,cAAc,EAAE,QAAQ,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,OAAO,CAAC;YAC3H,+BAA+B;SAClC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,+BAA+B,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;AACL,CAAC,CAAC"}
@@ -1,9 +1,2 @@
1
- export * from './broker-event';
2
- export * from './call-notification';
3
- export * from './clear-request';
4
- export * from './clear-response';
5
- export * from './error-notification';
6
- export * from './error-response';
7
- export * from './set-notification';
8
- export * from './worker-event';
1
+ export * from './worker-timers-worker-custom-definition';
9
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC"}
@@ -1,9 +1,2 @@
1
- export * from './broker-event';
2
- export * from './call-notification';
3
- export * from './clear-request';
4
- export * from './clear-response';
5
- export * from './error-notification';
6
- export * from './error-response';
7
- export * from './set-notification';
8
- export * from './worker-event';
1
+ export * from './worker-timers-worker-custom-definition';
9
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { IWorkerDefinition } from 'worker-factory';
2
+ import { TTimerType } from '../types';
3
+ export interface IWorkerTimersWorkerCustomDefinition extends IWorkerDefinition {
4
+ clear: {
5
+ params: {
6
+ timerId: number;
7
+ timerType: TTimerType;
8
+ };
9
+ response: {
10
+ result: boolean;
11
+ };
12
+ };
13
+ set: {
14
+ params: {
15
+ delay: number;
16
+ now: number;
17
+ timerId: number;
18
+ timerType: TTimerType;
19
+ };
20
+ response: {
21
+ result: boolean;
22
+ };
23
+ };
24
+ }
25
+ //# sourceMappingURL=worker-timers-worker-custom-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-timers-worker-custom-definition.d.ts","sourceRoot":"","sources":["../../../src/interfaces/worker-timers-worker-custom-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,mCAAoC,SAAQ,iBAAiB;IAC1E,KAAK,EAAE;QACH,MAAM,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC;YAEhB,SAAS,EAAE,UAAU,CAAC;SACzB,CAAC;QAEF,QAAQ,EAAE;YACN,MAAM,EAAE,OAAO,CAAC;SACnB,CAAC;KACL,CAAC;IAEF,GAAG,EAAE;QACD,MAAM,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC;YAEd,GAAG,EAAE,MAAM,CAAC;YAEZ,OAAO,EAAE,MAAM,CAAC;YAEhB,SAAS,EAAE,UAAU,CAAC;SACzB,CAAC;QAEF,QAAQ,EAAE;YACN,MAAM,EAAE,OAAO,CAAC;SACnB,CAAC;KACL,CAAC;CACL"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker-timers-worker-custom-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-timers-worker-custom-definition.js","sourceRoot":"","sources":["../../../src/interfaces/worker-timers-worker-custom-definition.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAOA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAYA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
@@ -1,48 +1,26 @@
1
- import { clearScheduledInterval, clearScheduledTimeout, scheduleInterval, scheduleTimeout } from './helpers/timer';
1
+ import { createWorker } from 'worker-factory';
2
+ import { createClearTimer } from './factories/clear-timer';
3
+ import { createSetTimer } from './factories/set-timer';
4
+ import { computeDelayAndExpectedCallbackTime } from './functions/compute-delay-and-expected-callback-time';
5
+ import { setTimeoutCallback } from './functions/set-timeout-callback';
2
6
  /*
3
7
  * @todo Explicitly referencing the barrel file seems to be necessary when enabling the
4
8
  * isolatedModules compiler option.
5
9
  */
6
10
  export * from './interfaces/index';
7
11
  export * from './types/index';
8
- addEventListener('message', ({ data }) => {
9
- try {
10
- if (data.method === 'clear') {
11
- const { id, params: { timerId, timerType } } = data;
12
- if (timerType === 'interval') {
13
- postMessage({ id, result: clearScheduledInterval(timerId) });
14
- }
15
- else if (timerType === 'timeout') {
16
- postMessage({ id, result: clearScheduledTimeout(timerId) });
17
- }
18
- else {
19
- throw new Error(`The given type "${timerType}" is not supported`);
20
- }
21
- }
22
- else if (data.method === 'set') {
23
- const { params: { delay, now, timerId, timerType } } = data;
24
- if (timerType === 'interval') {
25
- scheduleInterval(delay, timerId, now);
26
- }
27
- else if (timerType === 'timeout') {
28
- scheduleTimeout(delay, timerId, now);
29
- }
30
- else {
31
- throw new Error(`The given type "${timerType}" is not supported`);
32
- }
33
- }
34
- else {
35
- throw new Error(`The given method "${data.method}" is not supported`);
36
- }
37
- }
38
- catch (err) {
39
- postMessage({
40
- error: {
41
- message: err.message
42
- },
43
- id: data.id,
44
- result: null
45
- });
12
+ const intervalIdentifiersAndResolvers = new Map();
13
+ const clearInterval = createClearTimer(intervalIdentifiersAndResolvers);
14
+ const timeoutIdentifiersAndResolvers = new Map();
15
+ const clearTimeout = createClearTimer(timeoutIdentifiersAndResolvers);
16
+ const setInterval = createSetTimer(computeDelayAndExpectedCallbackTime, intervalIdentifiersAndResolvers, setTimeoutCallback);
17
+ const setTimeout = createSetTimer(computeDelayAndExpectedCallbackTime, timeoutIdentifiersAndResolvers, setTimeoutCallback);
18
+ createWorker(self, {
19
+ clear: ({ timerId, timerType }) => {
20
+ return { result: timerType === 'interval' ? clearInterval(timerId) : clearTimeout(timerId) };
21
+ },
22
+ set: async ({ delay, now, timerId, timerType }) => {
23
+ return { result: await (timerType === 'interval' ? setInterval : setTimeout)(delay, now, timerId) };
46
24
  }
47
25
  });
48
26
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGnH;;;GAGG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAE9B,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAgB,EAAE,EAAE;IACnD,IAAI,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,EACF,EAAE,EACF,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EACjC,GAAG,IAAI,CAAC;YAET,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC3B,WAAW,CAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,WAAW,CAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,oBAAoB,CAAC,CAAC;YACtE,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC/B,MAAM,EACF,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAC7C,GAAG,IAAI,CAAC;YAET,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC3B,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,oBAAoB,CAAC,CAAC;YACtE,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,qBAA2B,IAAK,CAAC,MAAM,oBAAoB,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,WAAW,CAAsC;YAC7C,KAAK,EAAE;gBACH,OAAO,EAAE,GAAG,CAAC,OAAO;aACvB;YACD,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAItE;;;GAGG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAE9B,MAAM,+BAA+B,GAA4D,IAAI,GAAG,EAAE,CAAC;AAC3G,MAAM,aAAa,GAAG,gBAAgB,CAAC,+BAA+B,CAAC,CAAC;AACxE,MAAM,8BAA8B,GAA4D,IAAI,GAAG,EAAE,CAAC;AAC1G,MAAM,YAAY,GAAG,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;AACtE,MAAM,WAAW,GAAG,cAAc,CAAC,mCAAmC,EAAE,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;AAC7H,MAAM,UAAU,GAAG,cAAc,CAAC,mCAAmC,EAAE,8BAA8B,EAAE,kBAAkB,CAAC,CAAC;AAE3H,YAAY,CAAsC,IAAI,EAA8D;IAChH,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QAC9B,OAAO,EAAE,MAAM,EAAE,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;IACjG,CAAC;IACD,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;IACxG,CAAC;CACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from './broker-message';
1
+ export * from './resolve-set-response-result-promise';
2
2
  export * from './timer-type';
3
- export * from './worker-message';
3
+ export * from './worker-timers-worker-definition';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from './broker-message';
1
+ export * from './resolve-set-response-result-promise';
2
2
  export * from './timer-type';
3
- export * from './worker-message';
3
+ export * from './worker-timers-worker-definition';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TWorkerTimersWorkerDefinition } from './worker-timers-worker-definition';
2
+ export type TResolveSetResponseResultPromise = Parameters<ConstructorParameters<typeof Promise<TWorkerTimersWorkerDefinition['set']['response']['result']>>[0]>[0];
3
+ //# sourceMappingURL=resolve-set-response-result-promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-set-response-result-promise.d.ts","sourceRoot":"","sources":["../../../src/types/resolve-set-response-result-promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAElF,MAAM,MAAM,gCAAgC,GAAG,UAAU,CACrD,qBAAqB,CAAC,OAAO,OAAO,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvG,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resolve-set-response-result-promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-set-response-result-promise.js","sourceRoot":"","sources":["../../../src/types/resolve-set-response-result-promise.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { TWorkerDefinition } from 'worker-factory';
2
+ import { IWorkerTimersWorkerCustomDefinition } from '../interfaces';
3
+ export type TWorkerTimersWorkerDefinition = TWorkerDefinition<IWorkerTimersWorkerCustomDefinition>;
4
+ //# sourceMappingURL=worker-timers-worker-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-timers-worker-definition.d.ts","sourceRoot":"","sources":["../../../src/types/worker-timers-worker-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mCAAmC,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,MAAM,6BAA6B,GAAG,iBAAiB,CAAC,mCAAmC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker-timers-worker-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-timers-worker-definition.js","sourceRoot":"","sources":["../../../src/types/worker-timers-worker-definition.ts"],"names":[],"mappings":""}
@@ -1,28 +1,36 @@
1
- (function (factory) {
2
- typeof define === 'function' && define.amd ? define(factory) :
3
- factory();
4
- })((function () { 'use strict';
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/regenerator'), require('worker-factory'), require('@babel/runtime/helpers/slicedToArray')) :
3
+ typeof define === 'function' && define.amd ? define(['@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/regenerator', 'worker-factory', '@babel/runtime/helpers/slicedToArray'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global._asyncToGenerator, global._regeneratorRuntime, global.workerFactory, global._slicedToArray));
5
+ })(this, (function (_asyncToGenerator, _regeneratorRuntime, workerFactory, _slicedToArray) { 'use strict';
5
6
 
6
- var scheduledIntervalIdentifiers = new Map();
7
- var scheduledTimeoutIdentifiers = new Map();
8
- var clearScheduledInterval = function clearScheduledInterval(timerId) {
9
- var identifier = scheduledIntervalIdentifiers.get(timerId);
10
- if (identifier === undefined) {
11
- return false;
12
- }
13
- clearTimeout(identifier);
14
- scheduledIntervalIdentifiers["delete"](timerId);
15
- return true;
7
+ var createClearTimer = function createClearTimer(identifiersAndResolvers) {
8
+ return function (timerId) {
9
+ var identifiersAndResolver = identifiersAndResolvers.get(timerId);
10
+ if (identifiersAndResolver === undefined) {
11
+ return false;
12
+ }
13
+ var _identifiersAndResolv = _slicedToArray(identifiersAndResolver, 2),
14
+ identifier = _identifiersAndResolv[0],
15
+ resolveSetResponseResultPromise = _identifiersAndResolv[1];
16
+ clearTimeout(identifier);
17
+ identifiersAndResolvers["delete"](timerId);
18
+ resolveSetResponseResultPromise(false);
19
+ return true;
20
+ };
16
21
  };
17
- var clearScheduledTimeout = function clearScheduledTimeout(timerId) {
18
- var identifier = scheduledTimeoutIdentifiers.get(timerId);
19
- if (identifier === undefined) {
20
- return false;
21
- }
22
- clearTimeout(identifier);
23
- scheduledTimeoutIdentifiers["delete"](timerId);
24
- return true;
22
+
23
+ var createSetTimer = function createSetTimer(computeDelayAndExpectedCallbackTime, identifiersAndResolvers, setTimeoutCallback) {
24
+ return function (delay, nowAndTimeOrigin, timerId) {
25
+ var _computeDelayAndExpec = computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin),
26
+ expected = _computeDelayAndExpec.expected,
27
+ remainingDelay = _computeDelayAndExpec.remainingDelay;
28
+ return new Promise(function (resolve) {
29
+ identifiersAndResolvers.set(timerId, [setTimeout(setTimeoutCallback, remainingDelay, expected, identifiersAndResolvers, resolve, timerId), resolve]);
30
+ });
31
+ };
25
32
  };
33
+
26
34
  var computeDelayAndExpectedCallbackTime = function computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin) {
27
35
  var now = performance.now();
28
36
  var remainingDelay = delay + nowAndTimeOrigin - now - performance.timeOrigin;
@@ -32,81 +40,56 @@
32
40
  remainingDelay: remainingDelay
33
41
  };
34
42
  };
35
- var _setTimeoutCallback = function setTimeoutCallback(identifiers, timerId, expected, timerType) {
43
+
44
+ var _setTimeoutCallback = function setTimeoutCallback(expected, identifiersAndResolvers, resolveSetResponseResultPromise, timerId) {
36
45
  var remainingDelay = expected - performance.now();
37
46
  if (remainingDelay > 0) {
38
- identifiers.set(timerId, setTimeout(_setTimeoutCallback, remainingDelay, identifiers, timerId, expected, timerType));
47
+ identifiersAndResolvers.set(timerId, [setTimeout(_setTimeoutCallback, remainingDelay, expected, identifiersAndResolvers, resolveSetResponseResultPromise, timerId), resolveSetResponseResultPromise]);
39
48
  } else {
40
- identifiers["delete"](timerId);
41
- postMessage({
42
- id: null,
43
- method: 'call',
44
- params: {
45
- timerId: timerId,
46
- timerType: timerType
47
- }
48
- });
49
+ identifiersAndResolvers["delete"](timerId);
50
+ resolveSetResponseResultPromise(true);
49
51
  }
50
52
  };
51
- var scheduleInterval = function scheduleInterval(delay, timerId, nowAndTimeOrigin) {
52
- var _computeDelayAndExpec = computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin),
53
- expected = _computeDelayAndExpec.expected,
54
- remainingDelay = _computeDelayAndExpec.remainingDelay;
55
- scheduledIntervalIdentifiers.set(timerId, setTimeout(_setTimeoutCallback, remainingDelay, scheduledIntervalIdentifiers, timerId, expected, 'interval'));
56
- };
57
- var scheduleTimeout = function scheduleTimeout(delay, timerId, nowAndTimeOrigin) {
58
- var _computeDelayAndExpec2 = computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin),
59
- expected = _computeDelayAndExpec2.expected,
60
- remainingDelay = _computeDelayAndExpec2.remainingDelay;
61
- scheduledTimeoutIdentifiers.set(timerId, setTimeout(_setTimeoutCallback, remainingDelay, scheduledTimeoutIdentifiers, timerId, expected, 'timeout'));
62
- };
63
53
 
64
- addEventListener('message', function (_ref) {
65
- var data = _ref.data;
66
- try {
67
- if (data.method === 'clear') {
68
- var id = data.id,
69
- _data$params = data.params,
70
- timerId = _data$params.timerId,
71
- timerType = _data$params.timerType;
72
- if (timerType === 'interval') {
73
- postMessage({
74
- id: id,
75
- result: clearScheduledInterval(timerId)
76
- });
77
- } else if (timerType === 'timeout') {
78
- postMessage({
79
- id: id,
80
- result: clearScheduledTimeout(timerId)
81
- });
82
- } else {
83
- throw new Error("The given type \"".concat(timerType, "\" is not supported"));
84
- }
85
- } else if (data.method === 'set') {
86
- var _data$params2 = data.params,
87
- delay = _data$params2.delay,
88
- now = _data$params2.now,
89
- _timerId = _data$params2.timerId,
90
- _timerType = _data$params2.timerType;
91
- if (_timerType === 'interval') {
92
- scheduleInterval(delay, _timerId, now);
93
- } else if (_timerType === 'timeout') {
94
- scheduleTimeout(delay, _timerId, now);
95
- } else {
96
- throw new Error("The given type \"".concat(_timerType, "\" is not supported"));
97
- }
98
- } else {
99
- throw new Error("The given method \"".concat(data.method, "\" is not supported"));
54
+ var intervalIdentifiersAndResolvers = new Map();
55
+ var clearInterval = createClearTimer(intervalIdentifiersAndResolvers);
56
+ var timeoutIdentifiersAndResolvers = new Map();
57
+ var clearTimeout$1 = createClearTimer(timeoutIdentifiersAndResolvers);
58
+ var setInterval = createSetTimer(computeDelayAndExpectedCallbackTime, intervalIdentifiersAndResolvers, _setTimeoutCallback);
59
+ var setTimeout$1 = createSetTimer(computeDelayAndExpectedCallbackTime, timeoutIdentifiersAndResolvers, _setTimeoutCallback);
60
+ workerFactory.createWorker(self, {
61
+ clear: function clear(_ref) {
62
+ var timerId = _ref.timerId,
63
+ timerType = _ref.timerType;
64
+ return {
65
+ result: timerType === 'interval' ? clearInterval(timerId) : clearTimeout$1(timerId)
66
+ };
67
+ },
68
+ set: function () {
69
+ var _set = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {
70
+ var delay, now, timerId, timerType;
71
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
72
+ while (1) switch (_context.prev = _context.next) {
73
+ case 0:
74
+ delay = _ref2.delay, now = _ref2.now, timerId = _ref2.timerId, timerType = _ref2.timerType;
75
+ _context.next = 3;
76
+ return (timerType === 'interval' ? setInterval : setTimeout$1)(delay, now, timerId);
77
+ case 3:
78
+ _context.t0 = _context.sent;
79
+ return _context.abrupt("return", {
80
+ result: _context.t0
81
+ });
82
+ case 5:
83
+ case "end":
84
+ return _context.stop();
85
+ }
86
+ }, _callee);
87
+ }));
88
+ function set(_x) {
89
+ return _set.apply(this, arguments);
100
90
  }
101
- } catch (err) {
102
- postMessage({
103
- error: {
104
- message: err.message
105
- },
106
- id: data.id,
107
- result: null
108
- });
109
- }
91
+ return set;
92
+ }()
110
93
  });
111
94
 
112
95
  }));
package/package.json CHANGED
@@ -15,23 +15,24 @@
15
15
  }
16
16
  ],
17
17
  "dependencies": {
18
- "@babel/runtime": "^7.26.0",
19
- "tslib": "^2.8.1"
18
+ "@babel/runtime": "^7.26.7",
19
+ "tslib": "^2.8.1",
20
+ "worker-factory": "^7.0.36"
20
21
  },
21
22
  "description": "The worker which is used by the worker-timers package.",
22
23
  "devDependencies": {
23
- "@babel/core": "^7.26.0",
24
+ "@babel/core": "^7.26.8",
24
25
  "@babel/plugin-external-helpers": "^7.25.9",
25
- "@babel/plugin-transform-runtime": "^7.25.9",
26
- "@babel/preset-env": "^7.26.0",
27
- "@commitlint/cli": "^19.6.1",
28
- "@commitlint/config-angular": "^19.6.0",
26
+ "@babel/plugin-transform-runtime": "^7.26.8",
27
+ "@babel/preset-env": "^7.26.8",
28
+ "@commitlint/cli": "^19.7.1",
29
+ "@commitlint/config-angular": "^19.7.1",
29
30
  "@rollup/plugin-babel": "^6.0.4",
30
31
  "chai": "^4.3.10",
31
32
  "commitizen": "^4.3.1",
32
33
  "cz-conventional-changelog": "^3.3.0",
33
34
  "eslint": "^8.57.0",
34
- "eslint-config-holy-grail": "^60.0.17",
35
+ "eslint-config-holy-grail": "^60.0.18",
35
36
  "grunt": "^1.6.1",
36
37
  "grunt-cli": "^1.5.0",
37
38
  "grunt-sh": "^0.2.1",
@@ -46,20 +47,20 @@
46
47
  "karma-sinon-chai": "^2.0.2",
47
48
  "karma-webkit-launcher": "^2.6.0",
48
49
  "karma-webpack": "^5.0.1",
49
- "lint-staged": "^15.3.0",
50
+ "lint-staged": "^15.4.3",
50
51
  "load-grunt-config": "^4.0.1",
51
52
  "memory-fs": "^0.5.0",
52
53
  "mocha": "^10.8.2",
53
- "prettier": "^3.4.2",
54
+ "prettier": "^3.5.0",
54
55
  "rimraf": "^6.0.1",
55
- "rollup": "^4.29.1",
56
+ "rollup": "^4.34.6",
56
57
  "sinon": "^17.0.2",
57
58
  "sinon-chai": "^3.7.0",
58
- "ts-loader": "^9.5.1",
59
+ "ts-loader": "^9.5.2",
59
60
  "tsconfig-holy-grail": "^15.0.2",
60
61
  "tslint": "^6.1.3",
61
62
  "tslint-config-holy-grail": "^56.0.6",
62
- "typescript": "^5.7.2",
63
+ "typescript": "^5.7.3",
63
64
  "webpack": "^5.97.1"
64
65
  },
65
66
  "files": [
@@ -87,5 +88,5 @@
87
88
  "test": "grunt lint && grunt test"
88
89
  },
89
90
  "types": "build/es2019/module.d.ts",
90
- "version": "8.0.10"
91
+ "version": "9.0.0"
91
92
  }
@@ -0,0 +1,18 @@
1
+ import { TResolveSetResponseResultPromise } from '../types';
2
+
3
+ export const createClearTimer = (identifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]>) => (timerId: number) => {
4
+ const identifiersAndResolver = identifiersAndResolvers.get(timerId);
5
+
6
+ if (identifiersAndResolver === undefined) {
7
+ return false;
8
+ }
9
+
10
+ const [identifier, resolveSetResponseResultPromise] = identifiersAndResolver;
11
+
12
+ clearTimeout(identifier);
13
+ identifiersAndResolvers.delete(timerId);
14
+
15
+ resolveSetResponseResultPromise(false);
16
+
17
+ return true;
18
+ };