timequeue 4.0.2 → 4.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,54 +1,34 @@
1
1
  import { EventEmitter } from 'node:events';
2
- import type { Store } from './store';
3
- export type { Store, StoreOptions } from './store';
4
- export type Worker = (...args: any[]) => void | Promise<any>;
5
- export interface Options {
6
- concurrency?: number;
7
- every?: number;
8
- maxQueued?: number;
9
- timeout?: number;
10
- store?: Store;
2
+ import type * as store from './store';
3
+ declare class TaskError extends Error {
4
+ args: unknown[];
11
5
  }
12
- export declare class TaskError extends Error {
13
- args: any[];
14
- }
15
- export default class TimeQueue extends EventEmitter {
16
- worker: Worker;
6
+ declare class TimeQueue extends EventEmitter {
7
+ static TimeQueue: typeof TimeQueue;
8
+ static default: typeof TimeQueue;
9
+ static TaskError: typeof TaskError;
10
+ worker: TimeQueue.Worker;
17
11
  concurrency: number;
18
12
  every: number;
19
13
  maxQueued: number;
20
14
  timeout: number;
21
15
  private _isWorkerAsync;
22
16
  private _timers;
23
- store: Store;
17
+ private _generation;
18
+ private _clearing;
19
+ store: TimeQueue.Store;
24
20
  active: number;
25
21
  intransit: number;
26
22
  finished: number;
27
- /**
28
- * @constructor
29
- * @extends {EventEmitter}
30
- * @param {Function(..., Function(!Error, ...)} worker
31
- * @param {Object?} options
32
- * @param {number?} options.concurrency
33
- * @param {number?} options.every
34
- * @param {number?} options.maxQueued
35
- * @param {number?} options.timeout
36
- */
37
- constructor(worker: Worker, options?: Options);
23
+ constructor(worker: TimeQueue.Worker, options?: TimeQueue.Options);
38
24
  /**
39
25
  * Pushes a task onto the queue.
40
- *
41
- * @param {Object} ...args
42
- * @param {Function(!Error, ...)} callback
43
- * @return {Promise?}
44
26
  */
45
- push(...args: any[]): Promise<unknown>;
27
+ push(...args: unknown[]): Promise<unknown>;
46
28
  /**
47
29
  * Starts a task
48
- *
49
- * @param {Array.<Object>} args
50
30
  */
51
- _process(args: any[]): Promise<void>;
31
+ _process(args: unknown[]): Promise<void>;
52
32
  /**
53
33
  * Called when a task finishes. Looks at the queue and processes the next
54
34
  * waiting task.
@@ -56,7 +36,21 @@ export default class TimeQueue extends EventEmitter {
56
36
  _next(): Promise<void>;
57
37
  /**
58
38
  * Empties the queue and kills the timers.
59
- * Active tasks will still be completed.
39
+ * Active tasks will still be completed, but no longer update queue state.
60
40
  */
61
41
  die(): Promise<void>;
62
42
  }
43
+ declare namespace TimeQueue {
44
+ type TaskError = typeof TaskError.prototype;
45
+ type Worker = (...args: any[]) => unknown;
46
+ interface Options {
47
+ concurrency?: number;
48
+ every?: number;
49
+ maxQueued?: number;
50
+ timeout?: number;
51
+ store?: store.Store;
52
+ }
53
+ type Store = store.Store;
54
+ type StoreOptions = store.StoreOptions;
55
+ }
56
+ export = TimeQueue;
package/dist/index.js CHANGED
@@ -11,26 +11,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TaskError = void 0;
16
14
  const node_events_1 = require("node:events");
17
15
  const mem_store_1 = __importDefault(require("./mem-store"));
18
16
  class TaskError extends Error {
19
17
  }
20
- exports.TaskError = TaskError;
21
18
  class TimeQueue extends node_events_1.EventEmitter {
22
- /**
23
- * @constructor
24
- * @extends {EventEmitter}
25
- * @param {Function(..., Function(!Error, ...)} worker
26
- * @param {Object?} options
27
- * @param {number?} options.concurrency
28
- * @param {number?} options.every
29
- * @param {number?} options.maxQueued
30
- * @param {number?} options.timeout
31
- */
32
19
  constructor(worker, options = {}) {
33
20
  super();
21
+ this._generation = 0;
22
+ this._clearing = null;
34
23
  // How many tasks are currently active.
35
24
  this.active = 0;
36
25
  // How many tasks are still being waited on,
@@ -50,14 +39,12 @@ class TimeQueue extends node_events_1.EventEmitter {
50
39
  }
51
40
  /**
52
41
  * Pushes a task onto the queue.
53
- *
54
- * @param {Object} ...args
55
- * @param {Function(!Error, ...)} callback
56
- * @return {Promise?}
57
42
  */
58
- // biome-ignore lint/suspicious/noExplicitAny: tasks accept arbitrary arguments
59
43
  push(...args) {
60
44
  return __awaiter(this, void 0, void 0, function* () {
45
+ while (this._clearing) {
46
+ yield this._clearing;
47
+ }
61
48
  // Returns a promise when no `callback` is given.
62
49
  if ((this._isWorkerAsync && args.length === this.worker.length) ||
63
50
  (!this._isWorkerAsync && args.length < this.worker.length)) {
@@ -70,9 +57,7 @@ class TimeQueue extends node_events_1.EventEmitter {
70
57
  }
71
58
  // Calling from the prototype directly fixes an infinute loop bug that
72
59
  // occurs when this method is overwritten by a child class.
73
- TimeQueue.prototype.push.call(this, ...args,
74
- // biome-ignore lint/suspicious/noExplicitAny: callback can return arbitrary results
75
- (err, results) => {
60
+ TimeQueue.prototype.push.call(this, ...args, (err, results) => {
76
61
  if (err)
77
62
  return reject(err);
78
63
  resolve(results);
@@ -94,13 +79,11 @@ class TimeQueue extends node_events_1.EventEmitter {
94
79
  }
95
80
  /**
96
81
  * Starts a task
97
- *
98
- * @param {Array.<Object>} args
99
82
  */
100
- // biome-ignore lint/suspicious/noExplicitAny: task args are dynamically typed
101
83
  _process(args) {
102
84
  return __awaiter(this, void 0, void 0, function* () {
103
85
  const callback = args.pop();
86
+ const generation = this._generation;
104
87
  let finished = false;
105
88
  const every = ~~this.every;
106
89
  let tookLongerThanEvery;
@@ -122,7 +105,6 @@ class TimeQueue extends node_events_1.EventEmitter {
122
105
  let callbackCalled = false;
123
106
  const timeout = ~~this.timeout;
124
107
  let tid;
125
- // biome-ignore lint/suspicious/noExplicitAny: worker result is arbitrary
126
108
  const taskCallback = (err, result) => {
127
109
  // If this task has timed out, and the callback is called again
128
110
  // from the worker, ignore it.
@@ -137,11 +119,14 @@ class TimeQueue extends node_events_1.EventEmitter {
137
119
  throw Error('Callback from worker should only be called once');
138
120
  }
139
121
  callbackCalled = true;
122
+ // `finished` is a lifetime count, so stale tasks still count here.
140
123
  this.finished++;
141
- this.active--;
124
+ const isCurrent = generation === this._generation;
125
+ if (isCurrent)
126
+ this.active--;
142
127
  callback(err, result);
143
128
  finished = true;
144
- if (tookLongerThanEvery) {
129
+ if (isCurrent && tookLongerThanEvery) {
145
130
  this._next();
146
131
  }
147
132
  };
@@ -176,11 +161,16 @@ class TimeQueue extends node_events_1.EventEmitter {
176
161
  */
177
162
  _next() {
178
163
  return __awaiter(this, void 0, void 0, function* () {
164
+ const generation = this._generation;
179
165
  if (this.intransit <= this.concurrency) {
180
166
  const task = yield this.store.getNextTask();
167
+ if (generation !== this._generation)
168
+ return;
181
169
  if (task) {
182
170
  this.active++;
183
171
  yield this._process(task);
172
+ if (generation !== this._generation)
173
+ return;
184
174
  if ((yield this.store.getQueueLen()) === 0) {
185
175
  this.emit('empty');
186
176
  }
@@ -194,19 +184,37 @@ class TimeQueue extends node_events_1.EventEmitter {
194
184
  }
195
185
  /**
196
186
  * Empties the queue and kills the timers.
197
- * Active tasks will still be completed.
187
+ * Active tasks will still be completed, but no longer update queue state.
198
188
  */
199
189
  die() {
200
190
  return __awaiter(this, void 0, void 0, function* () {
201
- yield this.store.clear();
191
+ this._generation++;
202
192
  for (const t of this._timers) {
203
193
  clearTimeout(t);
204
194
  }
205
195
  this._timers = [];
206
196
  this.intransit = 0;
207
197
  this.active = 0;
198
+ const clearing = this.store.clear();
199
+ this._clearing = clearing;
200
+ try {
201
+ yield clearing;
202
+ }
203
+ finally {
204
+ if (this._clearing === clearing) {
205
+ this._clearing = null;
206
+ }
207
+ }
208
208
  });
209
209
  }
210
210
  }
211
- exports.default = TimeQueue;
211
+ TimeQueue.TimeQueue = TimeQueue;
212
+ TimeQueue.default = TimeQueue;
213
+ TimeQueue.TaskError = TaskError;
214
+ // Statically recognizable exports for Node.js cjs-module-lexer (ESM named import support)
215
+ module.exports = TimeQueue;
216
+ module.exports.default = TimeQueue;
217
+ module.exports.TimeQueue = TimeQueue;
218
+ module.exports.TaskError = TaskError;
219
+ module.exports = TimeQueue;
212
220
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export default class MemoryStore implements Store {
4
4
  private _queue;
5
5
  constructor(options: StoreOptions);
6
6
  getQueueLen(): Promise<number>;
7
- getNextTask(): Promise<any[]>;
8
- pushTask(args: any[]): Promise<void>;
7
+ getNextTask(): Promise<unknown[]>;
8
+ pushTask(args: unknown[]): Promise<void>;
9
9
  clear(): Promise<void>;
10
10
  }
package/dist/mem-store.js CHANGED
@@ -24,7 +24,6 @@ class MemoryStore {
24
24
  return this._queue.shift();
25
25
  });
26
26
  }
27
- // biome-ignore lint/suspicious/noExplicitAny: arbitrary task arguments
28
27
  pushTask(args) {
29
28
  return __awaiter(this, void 0, void 0, function* () {
30
29
  if (this._queue.length < this.maxQueued) {
@@ -1 +1 @@
1
- {"version":3,"file":"mem-store.js","sourceRoot":"","sources":["../src/mem-store.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAqB,WAAW;IAI9B,YAAY,OAAqB;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IACK,WAAW;;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5B,CAAC;KAAA;IACK,WAAW;;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;KAAA;IACD,uEAAuE;IACjE,QAAQ,CAAC,IAAW;;YACxB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;KAAA;IACK,KAAK;;YACT,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;KAAA;CACF;AAvBD,8BAuBC"}
1
+ {"version":3,"file":"mem-store.js","sourceRoot":"","sources":["../src/mem-store.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAqB,WAAW;IAG9B,YAAY,OAAqB;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAEK,WAAW;;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5B,CAAC;KAAA;IACK,WAAW;;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;KAAA;IACK,QAAQ,CAAC,IAAe;;YAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;KAAA;IACK,KAAK;;YACT,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;KAAA;CACF;AAtBD,8BAsBC"}
package/dist/store.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  export interface StoreOptions {
2
- maxQueued?: number;
2
+ maxQueued: number;
3
3
  }
4
4
  export interface Store {
5
5
  getQueueLen(): Promise<number>;
6
- getNextTask(): Promise<any[]>;
7
- pushTask(...args: any[]): Promise<void>;
6
+ getNextTask(): Promise<unknown[] | undefined>;
7
+ pushTask(args: unknown[]): Promise<void>;
8
8
  clear(): Promise<void>;
9
9
  }
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "flow",
7
7
  "time"
8
8
  ],
9
- "version": "4.0.2",
9
+ "version": "4.0.4",
10
10
  "repository": {
11
11
  "type": "git",
12
12
  "url": "git://github.com/fent/timequeue.js.git"
@@ -21,8 +21,9 @@
21
21
  "build": "tsc -p tsconfig.build.json",
22
22
  "lint": "biome check .",
23
23
  "lint:fix": "biome check --write .",
24
- "test": "nyc --extension .ts --reporter=lcov --reporter=text-summary npm run test:unit",
25
- "test:unit": "mocha --require ts-node/register test/*-test.ts"
24
+ "test": "nyc --extension .ts --reporter=lcov --reporter=text-summary npm run test:unit && npm run test:package",
25
+ "test:unit": "mocha --require ts-node/register --ignore test/export-test.ts test/*-test.ts",
26
+ "test:package": "mocha --require ts-node/register test/export-test.ts"
26
27
  },
27
28
  "devDependencies": {
28
29
  "@biomejs/biome": "2.5.15",