eternal-timer 4.1.0 → 4.2.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.
package/README.md CHANGED
@@ -307,6 +307,20 @@ await manager.adjustRemainingTime(timerId, 60000); // Add 1 minute to the timer
307
307
  await manager.adjustRemainingTime(timerId, -30000); // Subtract 30 seconds from the timer
308
308
  ```
309
309
 
310
+ ### `checkStop(): Promise<void>`
311
+
312
+ Asynchronously checks for any running `checkStart` intervals and clears them if found. This effectively stops the timer monitoring process.
313
+
314
+ **Returns:** A `Promise<void>` that resolves when all intervals have been cleared.
315
+
316
+ **Throws:** An error if any underlying file operation fails during the process of checking and stopping.
317
+
318
+ ### `isBusy: boolean`
319
+
320
+ A getter that returns `true` if the manager is currently monitoring for expired timers (i.e., `checkStart` has been called and `checkStop` has not yet been called), and `false` otherwise.
321
+
322
+ **Returns:** `boolean` - `true` if monitoring, `false` otherwise.
323
+
310
324
  ## Type Definition
311
325
 
312
326
  The `StorageType` has the following structure:
@@ -13,6 +13,8 @@ import { EventEmitter } from "../EventEmitter.js";
13
13
  export declare abstract class TimersManager<T extends StorageType, Extra extends object> extends EventEmitter<T, Extra> {
14
14
  protected readonly timerfiledir: string;
15
15
  protected checkLock: boolean;
16
+ protected interval: NodeJS.Timeout | undefined;
17
+ protected running: boolean;
16
18
  protected TimersStore: TimersStore<T, Extra> | null;
17
19
  private queue;
18
20
  protected runExclusive<T>(fn: () => Promise<T>): Promise<T>;
@@ -59,13 +61,34 @@ export declare abstract class TimersManager<T extends StorageType, Extra extends
59
61
  * checkStart
60
62
  * @description Starts the timer checking loop. This method should be called once after creating an instance of TimersManager to detect expired timers.
61
63
  * @param {number} [interval=200] Polling interval in milliseconds (default: 200ms)
62
- * @returns The interval ID which can be used to stop the loop with clearInterval
64
+ * @returns Promise<void> that resolves when the loop has been started
63
65
  * @throws If file operation fails during checking
64
66
  * @example
65
67
  * const manager = new TimersManager();
66
- * manager.checkStart(1000); // Check for expired timers every 1 second
68
+ * await manager.checkStart(1000); // Check for expired timers every 1 second
67
69
  */
68
- checkStart(interval?: number): Promise<NodeJS.Timeout>;
70
+ checkStart(interval?: number): Promise<void>;
71
+ /**
72
+ * checkStop
73
+ * @description Stops the timer checking loop.
74
+ * @returns Promise resolving when the loop has been stopped
75
+ * @example
76
+ * const manager = new TimersManager();
77
+ * await manager.checkStart(1000);
78
+ * // ... later, to stop checking:
79
+ * await manager.checkStop();
80
+ */
81
+ checkStop(): Promise<void>;
82
+ /**
83
+ * isBusy
84
+ * @description Indicates whether the TimersManager is currently performing a file operation (e.g. loading or saving timers). This can be used to avoid starting multiple operations simultaneously.
85
+ * @returns `true` if a file operation is in progress, otherwise `false`
86
+ * @example
87
+ * if (!manager.isBusy) {
88
+ * await manager.createTimer(5000);
89
+ * }
90
+ */
91
+ get isBusy(): boolean;
69
92
  /**
70
93
  * showTimers
71
94
  * @description Retrieves all active timers.
@@ -1 +1 @@
1
- {"version":3,"file":"TimersManager.d.ts","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;;;;;GAQG;AACH,8BAAsB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,CAAE,SAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;IAC9G,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;IAErC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAQ;IAE3D,OAAO,CAAC,KAAK,CAAoC;IACjD,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAM9C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,MAAM;IAC/C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3B;;;;;;;;QAQO;gBAEN,SAAS,CAAC,EAAE,MAAM;IAenB;;;;;;;;;;;;;;OAcM;IACO,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAgChF;;;;;;;;OAQM;IACO,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnD;;;;;;;;;OASG;IACU,UAAU,CACtB,QAAQ,GAAE,MAAY,GACpB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IAqD1B;;;;;;;;UAQG;IACU,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAQrD;;;;;;;QAOO;IACM,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB1E"}
1
+ {"version":3,"file":"TimersManager.d.ts","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;;;;;GAQG;AACH,8BAAsB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,CAAE,SAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;IAC9G,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;IAErC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAC/C,SAAS,CAAC,OAAO,EAAE,OAAO,CAAS;IAEnC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAQ;IAE3D,OAAO,CAAC,KAAK,CAAoC;IACjD,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAM9C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,MAAM;IAC/C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3B;;;;;;;;QAQO;gBAEN,SAAS,CAAC,EAAE,MAAM;IAenB;;;;;;;;;;;;;;OAcM;IACO,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAgChF;;;;;;;;OAQM;IACO,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnD;;;;;;;;;OASG;IACU,UAAU,CACtB,QAAQ,GAAE,MAAY,GACpB,OAAO,CAAC,IAAI,CAAC;IAkDhB;;;;;;;;;OASG;IACU,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IASvC;;;;;;;;OAQG;IACH,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED;;;;;;;;UAQG;IACU,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAQrD;;;;;;;QAOO;IACM,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB1E"}
@@ -22,6 +22,8 @@ const throwMessage_js_1 = require("../throwMessage.js");
22
22
  class TimersManager extends EventEmitter_js_1.EventEmitter {
23
23
  timerfiledir;
24
24
  checkLock = false;
25
+ interval;
26
+ running = false;
25
27
  TimersStore = null;
26
28
  queue = Promise.resolve();
27
29
  runExclusive(fn) {
@@ -120,56 +122,85 @@ class TimersManager extends EventEmitter_js_1.EventEmitter {
120
122
  * checkStart
121
123
  * @description Starts the timer checking loop. This method should be called once after creating an instance of TimersManager to detect expired timers.
122
124
  * @param {number} [interval=200] Polling interval in milliseconds (default: 200ms)
123
- * @returns The interval ID which can be used to stop the loop with clearInterval
125
+ * @returns Promise<void> that resolves when the loop has been started
124
126
  * @throws If file operation fails during checking
125
127
  * @example
126
128
  * const manager = new TimersManager();
127
- * manager.checkStart(1000); // Check for expired timers every 1 second
129
+ * await manager.checkStart(1000); // Check for expired timers every 1 second
128
130
  */
129
131
  async checkStart(interval = 200) {
132
+ if (this.running)
133
+ return;
134
+ this.running = true;
130
135
  this.TimersStore ??= await this.createTimersStore();
131
136
  const loop = async () => {
137
+ if (!this.running)
138
+ return;
132
139
  if (this.checkLock)
133
140
  return;
134
141
  this.checkLock = true;
135
- let expiredTimers = [];
136
142
  try {
137
- expiredTimers = await this.runExclusive(async () => {
143
+ const expiredTimers = await this.runExclusive(async () => {
138
144
  await this.emit("interval", void 0);
139
145
  const allTimers = await this.TimersStore.loadTimers();
140
146
  const now = Date.now();
141
147
  const expired = [];
142
148
  const active = [];
143
149
  for (const timer of allTimers) {
144
- if (timer.stop <= now) {
150
+ if (timer.stop <= now)
145
151
  expired.push(timer);
146
- }
147
- else {
152
+ else
148
153
  active.push(timer);
149
- }
150
154
  }
151
155
  if (expired.length > 0) {
152
156
  await this.TimersStore.saveTimers(active);
153
157
  }
154
158
  return expired;
155
159
  });
160
+ for (const timer of expiredTimers) {
161
+ await this.emit("expired", timer);
162
+ }
156
163
  }
157
164
  catch (e) {
158
- this.emit("errored", e instanceof Error ? e : new Error(String(e))).catch(() => { });
159
- this.checkLock = false;
160
- return;
165
+ await this.emit("errored", e instanceof Error ? e : new Error(String(e)));
166
+ this.running = false;
161
167
  }
162
- for (const timer of expiredTimers) {
163
- try {
164
- await this.emit("expired", timer);
165
- }
166
- catch (e) {
167
- await this.emit("errored", e instanceof Error ? e : new Error(String(e)));
168
- }
168
+ finally {
169
+ this.checkLock = false;
169
170
  }
170
- this.checkLock = false;
171
171
  };
172
- return setInterval(loop, interval);
172
+ this.emit("started", void 0);
173
+ this.interval = setInterval(loop, interval);
174
+ }
175
+ /**
176
+ * checkStop
177
+ * @description Stops the timer checking loop.
178
+ * @returns Promise resolving when the loop has been stopped
179
+ * @example
180
+ * const manager = new TimersManager();
181
+ * await manager.checkStart(1000);
182
+ * // ... later, to stop checking:
183
+ * await manager.checkStop();
184
+ */
185
+ async checkStop() {
186
+ this.running = false;
187
+ if (this.interval) {
188
+ clearInterval(this.interval);
189
+ this.interval = undefined;
190
+ }
191
+ this.emit("stopped", void 0);
192
+ }
193
+ /**
194
+ * isBusy
195
+ * @description Indicates whether the TimersManager is currently performing a file operation (e.g. loading or saving timers). This can be used to avoid starting multiple operations simultaneously.
196
+ * @returns `true` if a file operation is in progress, otherwise `false`
197
+ * @example
198
+ * if (!manager.isBusy) {
199
+ * await manager.createTimer(5000);
200
+ * }
201
+ */
202
+ get isBusy() {
203
+ return this.checkLock;
173
204
  }
174
205
  /**
175
206
  * showTimers
@@ -1 +1 @@
1
- {"version":3,"file":"TimersManager.js","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimersManager.js","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,+BAAoC;AAEpC,qEAA0C;AAG1C,wDAAkD;AAClD,wDAAkD;AAElD;;;;;;;;GAQG;AACH,MAAsB,aAA2D,SAAQ,8BAAsB;IAC3F,YAAY,CAAS;IAC9B,SAAS,GAAY,KAAK,CAAC;IAE3B,QAAQ,CAA6B;IACrC,OAAO,GAAY,KAAK,CAAC;IAEzB,WAAW,GAAiC,IAAI,CAAC;IAEnD,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACvC,YAAY,CAAI,EAAoB;QAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACV,CAAC;IAMD;;;;;;;;QAQO;IACP,YACC,SAAkB;QAElB,KAAK,EAAE,CAAC;QACR,MAAM,OAAO,GAAG,IAAA,uBAAU,GAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC;YACJ,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACR,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;OAcM;IACC,KAAK,CAAC,WAAW,CAAC,OAAqC;QAC7D,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEpD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YAED,IAAI,MAAM,GAAW,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5E,IAAI,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YAEpE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5B,MAAM,EAAE,GAAG,IAAA,SAAM,GAAE,CAAC;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAE3C,MAAM,YAAY,GAAoB;gBACrC,EAAE;gBACF,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,QAAQ;gBACd,GAAG,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;oBACxE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;oBAC1B,CAAC,CAAC,EAAE,CAAC;aACa,CAAC;YAErB,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACzC,OAAO,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQM;IACC,KAAK,CAAC,WAAW,CAAC,EAAU;QAClC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAEnD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,OAAO;QACR,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,UAAU,CACtB,WAAmB,GAAG;QAGtB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEpD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAE3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;oBACxD,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;oBACpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAY,CAAC,UAAU,EAAE,CAAC;oBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAEvB,MAAM,OAAO,GAAsB,EAAE,CAAC;oBACtC,MAAM,MAAM,GAAsB,EAAE,CAAC;oBAErC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;wBAC/B,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG;4BAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;4BACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,MAAM,IAAI,CAAC,WAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC5C,CAAC;oBAED,OAAO,OAAO,CAAC;gBAChB,CAAC,CAAC,CAAC;gBAEH,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;oBACnC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACnC,CAAC;YAEF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,CAAC;oBAAS,CAAC;gBACV,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,CAAC;QACF,CAAC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACH,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED;;;;;;;;UAQG;IACI,KAAK,CAAC,UAAU;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YACvD,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;QAOO;IACA,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,KAAa;QACzD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAEnD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,8BAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;YAEpD,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,YAAY,CAAC;YAChC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO;QACR,CAAC,CAAC,CAAC;IACH,CAAC;CACF;AArQD,sCAqQC"}
@@ -14,6 +14,8 @@ export type CreateTimerOptions<T extends StorageType, Extra extends object> = T
14
14
  extra: Extra;
15
15
  } : T extends "PlainText" ? number : never;
16
16
  export type TimerEvents<T extends StorageType, Extra extends object> = {
17
+ started: void;
18
+ stopped: void;
17
19
  expired: Timer<T, Extra>;
18
20
  errored: Error;
19
21
  interval: void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAEhD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IACzD,CAAC,SAAS,OAAO,GACX;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAA;CACf,GACD;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEZ,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,SAAS,OAAO,GACzF;IACI,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAA;CACf,GACD,CAAC,SAAS,WAAW,GACnB,MAAM,GACN,KAAK,CAAC;AAEd,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;IACrE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE;QAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;KAAE,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;KACpE,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CACpC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAC9B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;CAC7B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAEhD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IACzD,CAAC,SAAS,OAAO,GACX;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAA;CACf,GACD;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEZ,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,SAAS,OAAO,GACzF;IACI,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAA;CACf,GACD,CAAC,SAAS,WAAW,GACnB,MAAM,GACN,KAAK,CAAC;AAEd,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;IACrE,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE;QAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;KAAE,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;KACpE,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CACpC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAC9B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;CAC7B,CAAA"}
@@ -13,6 +13,8 @@ import { EventEmitter } from "../EventEmitter.js";
13
13
  export declare abstract class TimersManager<T extends StorageType, Extra extends object> extends EventEmitter<T, Extra> {
14
14
  protected readonly timerfiledir: string;
15
15
  protected checkLock: boolean;
16
+ protected interval: NodeJS.Timeout | undefined;
17
+ protected running: boolean;
16
18
  protected TimersStore: TimersStore<T, Extra> | null;
17
19
  private queue;
18
20
  protected runExclusive<T>(fn: () => Promise<T>): Promise<T>;
@@ -59,13 +61,34 @@ export declare abstract class TimersManager<T extends StorageType, Extra extends
59
61
  * checkStart
60
62
  * @description Starts the timer checking loop. This method should be called once after creating an instance of TimersManager to detect expired timers.
61
63
  * @param {number} [interval=200] Polling interval in milliseconds (default: 200ms)
62
- * @returns The interval ID which can be used to stop the loop with clearInterval
64
+ * @returns Promise<void> that resolves when the loop has been started
63
65
  * @throws If file operation fails during checking
64
66
  * @example
65
67
  * const manager = new TimersManager();
66
- * manager.checkStart(1000); // Check for expired timers every 1 second
68
+ * await manager.checkStart(1000); // Check for expired timers every 1 second
67
69
  */
68
- checkStart(interval?: number): Promise<NodeJS.Timeout>;
70
+ checkStart(interval?: number): Promise<void>;
71
+ /**
72
+ * checkStop
73
+ * @description Stops the timer checking loop.
74
+ * @returns Promise resolving when the loop has been stopped
75
+ * @example
76
+ * const manager = new TimersManager();
77
+ * await manager.checkStart(1000);
78
+ * // ... later, to stop checking:
79
+ * await manager.checkStop();
80
+ */
81
+ checkStop(): Promise<void>;
82
+ /**
83
+ * isBusy
84
+ * @description Indicates whether the TimersManager is currently performing a file operation (e.g. loading or saving timers). This can be used to avoid starting multiple operations simultaneously.
85
+ * @returns `true` if a file operation is in progress, otherwise `false`
86
+ * @example
87
+ * if (!manager.isBusy) {
88
+ * await manager.createTimer(5000);
89
+ * }
90
+ */
91
+ get isBusy(): boolean;
69
92
  /**
70
93
  * showTimers
71
94
  * @description Retrieves all active timers.
@@ -1 +1 @@
1
- {"version":3,"file":"TimersManager.d.ts","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;;;;;GAQG;AACH,8BAAsB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,CAAE,SAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;IAC9G,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;IAErC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAQ;IAE3D,OAAO,CAAC,KAAK,CAAoC;IACjD,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAM9C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,MAAM;IAC/C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3B;;;;;;;;QAQO;gBAEN,SAAS,CAAC,EAAE,MAAM;IAenB;;;;;;;;;;;;;;OAcM;IACO,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAgChF;;;;;;;;OAQM;IACO,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnD;;;;;;;;;OASG;IACU,UAAU,CACtB,QAAQ,GAAE,MAAY,GACpB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IAqD1B;;;;;;;;UAQG;IACU,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAQrD;;;;;;;QAOO;IACM,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB1E"}
1
+ {"version":3,"file":"TimersManager.d.ts","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;;;;;GAQG;AACH,8BAAsB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,CAAE,SAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;IAC9G,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;IAErC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAC/C,SAAS,CAAC,OAAO,EAAE,OAAO,CAAS;IAEnC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAQ;IAE3D,OAAO,CAAC,KAAK,CAAoC;IACjD,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAM9C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,MAAM;IAC/C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3B;;;;;;;;QAQO;gBAEN,SAAS,CAAC,EAAE,MAAM;IAenB;;;;;;;;;;;;;;OAcM;IACO,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAgChF;;;;;;;;OAQM;IACO,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnD;;;;;;;;;OASG;IACU,UAAU,CACtB,QAAQ,GAAE,MAAY,GACpB,OAAO,CAAC,IAAI,CAAC;IAkDhB;;;;;;;;;OASG;IACU,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IASvC;;;;;;;;OAQG;IACH,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED;;;;;;;;UAQG;IACU,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAQrD;;;;;;;QAOO;IACM,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB1E"}
@@ -17,6 +17,8 @@ import { throwMessage } from "../throwMessage.js";
17
17
  export class TimersManager extends EventEmitter {
18
18
  timerfiledir;
19
19
  checkLock = false;
20
+ interval;
21
+ running = false;
20
22
  TimersStore = null;
21
23
  queue = Promise.resolve();
22
24
  runExclusive(fn) {
@@ -115,56 +117,85 @@ export class TimersManager extends EventEmitter {
115
117
  * checkStart
116
118
  * @description Starts the timer checking loop. This method should be called once after creating an instance of TimersManager to detect expired timers.
117
119
  * @param {number} [interval=200] Polling interval in milliseconds (default: 200ms)
118
- * @returns The interval ID which can be used to stop the loop with clearInterval
120
+ * @returns Promise<void> that resolves when the loop has been started
119
121
  * @throws If file operation fails during checking
120
122
  * @example
121
123
  * const manager = new TimersManager();
122
- * manager.checkStart(1000); // Check for expired timers every 1 second
124
+ * await manager.checkStart(1000); // Check for expired timers every 1 second
123
125
  */
124
126
  async checkStart(interval = 200) {
127
+ if (this.running)
128
+ return;
129
+ this.running = true;
125
130
  this.TimersStore ??= await this.createTimersStore();
126
131
  const loop = async () => {
132
+ if (!this.running)
133
+ return;
127
134
  if (this.checkLock)
128
135
  return;
129
136
  this.checkLock = true;
130
- let expiredTimers = [];
131
137
  try {
132
- expiredTimers = await this.runExclusive(async () => {
138
+ const expiredTimers = await this.runExclusive(async () => {
133
139
  await this.emit("interval", void 0);
134
140
  const allTimers = await this.TimersStore.loadTimers();
135
141
  const now = Date.now();
136
142
  const expired = [];
137
143
  const active = [];
138
144
  for (const timer of allTimers) {
139
- if (timer.stop <= now) {
145
+ if (timer.stop <= now)
140
146
  expired.push(timer);
141
- }
142
- else {
147
+ else
143
148
  active.push(timer);
144
- }
145
149
  }
146
150
  if (expired.length > 0) {
147
151
  await this.TimersStore.saveTimers(active);
148
152
  }
149
153
  return expired;
150
154
  });
155
+ for (const timer of expiredTimers) {
156
+ await this.emit("expired", timer);
157
+ }
151
158
  }
152
159
  catch (e) {
153
- this.emit("errored", e instanceof Error ? e : new Error(String(e))).catch(() => { });
154
- this.checkLock = false;
155
- return;
160
+ await this.emit("errored", e instanceof Error ? e : new Error(String(e)));
161
+ this.running = false;
156
162
  }
157
- for (const timer of expiredTimers) {
158
- try {
159
- await this.emit("expired", timer);
160
- }
161
- catch (e) {
162
- await this.emit("errored", e instanceof Error ? e : new Error(String(e)));
163
- }
163
+ finally {
164
+ this.checkLock = false;
164
165
  }
165
- this.checkLock = false;
166
166
  };
167
- return setInterval(loop, interval);
167
+ this.emit("started", void 0);
168
+ this.interval = setInterval(loop, interval);
169
+ }
170
+ /**
171
+ * checkStop
172
+ * @description Stops the timer checking loop.
173
+ * @returns Promise resolving when the loop has been stopped
174
+ * @example
175
+ * const manager = new TimersManager();
176
+ * await manager.checkStart(1000);
177
+ * // ... later, to stop checking:
178
+ * await manager.checkStop();
179
+ */
180
+ async checkStop() {
181
+ this.running = false;
182
+ if (this.interval) {
183
+ clearInterval(this.interval);
184
+ this.interval = undefined;
185
+ }
186
+ this.emit("stopped", void 0);
187
+ }
188
+ /**
189
+ * isBusy
190
+ * @description Indicates whether the TimersManager is currently performing a file operation (e.g. loading or saving timers). This can be used to avoid starting multiple operations simultaneously.
191
+ * @returns `true` if a file operation is in progress, otherwise `false`
192
+ * @example
193
+ * if (!manager.isBusy) {
194
+ * await manager.createTimer(5000);
195
+ * }
196
+ */
197
+ get isBusy() {
198
+ return this.checkLock;
168
199
  }
169
200
  /**
170
201
  * showTimers
@@ -1 +1 @@
1
- {"version":3,"file":"TimersManager.js","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimersManager.js","sourceRoot":"","sources":["../../../src/TimersManager/TimersManager.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ export type CreateTimerOptions<T extends StorageType, Extra extends object> = T
14
14
  extra: Extra;
15
15
  } : T extends "PlainText" ? number : never;
16
16
  export type TimerEvents<T extends StorageType, Extra extends object> = {
17
+ started: void;
18
+ stopped: void;
17
19
  expired: Timer<T, Extra>;
18
20
  errored: Error;
19
21
  interval: void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAEhD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IACzD,CAAC,SAAS,OAAO,GACX;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAA;CACf,GACD;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEZ,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,SAAS,OAAO,GACzF;IACI,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAA;CACf,GACD,CAAC,SAAS,WAAW,GACnB,MAAM,GACN,KAAK,CAAC;AAEd,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;IACrE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE;QAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;KAAE,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;KACpE,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CACpC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAC9B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;CAC7B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAEhD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IACzD,CAAC,SAAS,OAAO,GACX;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAA;CACf,GACD;IACI,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEZ,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,SAAS,OAAO,GACzF;IACI,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAA;CACf,GACD,CAAC,SAAS,WAAW,GACnB,MAAM,GACN,KAAK,CAAC;AAEd,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;IACrE,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxB,OAAO,EAAE;QAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;KAAE,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,SAAS,MAAM,IAAI;KACpE,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CACpC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAC9B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;CAC7B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eternal-timer",
3
- "version": "4.1.0",
3
+ "version": "4.2.0",
4
4
  "description": "timer for node.js package",
5
5
  "scripts": {
6
6
  "build": "tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node scripts/move-package-json.js",