@stamhoofd/queues 2.1.4 → 2.7.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.
|
@@ -19,6 +19,7 @@ declare class QueueItem<T> {
|
|
|
19
19
|
export declare class QueueHandler {
|
|
20
20
|
static queues: Map<string, Queue>;
|
|
21
21
|
static asyncLocalStorage: AsyncLocalStorage<string[]>;
|
|
22
|
+
static cancel(queue: string): void;
|
|
22
23
|
static schedule<T>(queue: string, handler: () => Promise<T>, parallel?: number): Promise<T>;
|
|
23
24
|
private static runNext;
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueHandler.d.ts","sourceRoot":"","sources":["../../src/QueueHandler.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,cAAM,KAAK;IACP,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAK;IAC5B,QAAQ,SAAI;IACZ,QAAQ,SAAI;gBAEA,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAI;IAKtC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;CAG/B;AAED,cAAM,SAAS,CAAC,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;IACzB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CACjC;AAED;;GAEG;AACH,qBAAa,YAAY;IACrB,MAAM,CAAC,MAAM,qBAA2B;IACxC,MAAM,CAAC,iBAAiB,8BAAqC;
|
|
1
|
+
{"version":3,"file":"QueueHandler.d.ts","sourceRoot":"","sources":["../../src/QueueHandler.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,cAAM,KAAK;IACP,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAK;IAC5B,QAAQ,SAAI;IACZ,QAAQ,SAAI;gBAEA,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAI;IAKtC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;CAG/B;AAED,cAAM,SAAS,CAAC,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;IACzB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CACjC;AAED;;GAEG;AACH,qBAAa,YAAY;IACrB,MAAM,CAAC,MAAM,qBAA2B;IACxC,MAAM,CAAC,iBAAiB,8BAAqC;IAE7D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM;WAYd,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,SAAI,GAAG,OAAO,CAAC,CAAC,CAAC;mBAuCvE,OAAO;CAoC/B"}
|
package/dist/src/QueueHandler.js
CHANGED
|
@@ -20,6 +20,17 @@ class QueueItem {
|
|
|
20
20
|
* Force the usage of a queue to prevent concurrency issues
|
|
21
21
|
*/
|
|
22
22
|
class QueueHandler {
|
|
23
|
+
static cancel(queue) {
|
|
24
|
+
const q = this.queues.get(queue);
|
|
25
|
+
if (q) {
|
|
26
|
+
// This doesn't interfere any running items
|
|
27
|
+
for (const item of q.items) {
|
|
28
|
+
item.handler = () => {
|
|
29
|
+
return Promise.reject(new Error('Queue was cancelled'));
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
23
34
|
static async schedule(queue, handler, parallel = 1) {
|
|
24
35
|
// console.log("[QUEUE] Schedule "+queue)
|
|
25
36
|
const currentQueues = this.asyncLocalStorage.getStore();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueHandler.js","sourceRoot":"","sources":["../../src/QueueHandler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"QueueHandler.js","sourceRoot":"","sources":["../../src/QueueHandler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stamhoofd/queues",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"license": "UNLICENCED",
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
"test": "jest --runInBand",
|
|
16
16
|
"test:reset": "yarn build:full && jest --runInBand"
|
|
17
17
|
},
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "319a4de9fac39a31110cddbfa9a580d1b9c8f730"
|
|
19
19
|
}
|
package/src/QueueHandler.ts
CHANGED
|
@@ -30,6 +30,18 @@ export class QueueHandler {
|
|
|
30
30
|
static queues = new Map<string, Queue>()
|
|
31
31
|
static asyncLocalStorage = new AsyncLocalStorage<string[]>();
|
|
32
32
|
|
|
33
|
+
static cancel(queue: string) {
|
|
34
|
+
const q = this.queues.get(queue)
|
|
35
|
+
if (q) {
|
|
36
|
+
// This doesn't interfere any running items
|
|
37
|
+
for (const item of q.items) {
|
|
38
|
+
item.handler = () => {
|
|
39
|
+
return Promise.reject(new Error('Queue was cancelled'))
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
33
45
|
static async schedule<T>(queue: string, handler: () => Promise<T>, parallel = 1): Promise<T> {
|
|
34
46
|
// console.log("[QUEUE] Schedule "+queue)
|
|
35
47
|
|
|
@@ -105,4 +117,4 @@ export class QueueHandler {
|
|
|
105
117
|
q.runCount -= 1
|
|
106
118
|
await this.runNext(queue)
|
|
107
119
|
}
|
|
108
|
-
}
|
|
120
|
+
}
|