Skip to content

Commit cc3da9c

Browse files
committed
fix: The API for queue.drain changed in [email protected].
1 parent f30c2a7 commit cc3da9c

File tree

2 files changed

+7
-13
lines changed

2 files changed

+7
-13
lines changed

packages/@css-blocks/core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
},
4040
"devDependencies": {
4141
"@css-blocks/code-style": "^0.24.0",
42-
"@types/async": "^2.0.40",
42+
"@types/async": "^3.0.3",
4343
"@types/debug": "4.1.5",
4444
"typescript": "~3.6"
4545
},

packages/@css-blocks/core/src/util/PromiseQueue.ts

+6-12
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ export class PromiseQueue<WorkItem, Result> {
1919
private queue: async.AsyncQueue<PendingWork<WorkItem, Result>>;
2020
private queueId: number;
2121
private jobId: number;
22-
private draining: Promise<void> | undefined;
22+
private draining: boolean;
2323
private promiseProcessor: (item: WorkItem) => Promise<Result>;
2424
constructor(concurrency: number, processor: (item: WorkItem) => Promise<Result>) {
2525
this.promiseProcessor = processor;
2626
this.queue = async.queue<PendingWork<WorkItem, Result>, Error>(this.processWork.bind(this), concurrency);
2727
this.queueId = queueInstanceId++;
2828
this.jobId = 0;
29+
this.draining = false;
2930
}
3031

3132
private processWork(work: PendingWork<WorkItem, Result>, callback: (err?: unknown) => void) {
@@ -54,17 +55,10 @@ export class PromiseQueue<WorkItem, Result> {
5455
}
5556

5657
drain(): Promise<void> {
57-
if (!this.draining) {
58-
this.draining = new Promise<void>((resolve, _reject) => {
59-
this.debug(`Starting to drain current work queue.`);
60-
this.queue.drain = () => {
61-
this.debug(`queue is drained`);
62-
this.draining = undefined;
63-
resolve();
64-
};
65-
});
66-
}
67-
return this.draining;
58+
this.draining = true;
59+
return this.queue.drain().then(() => {
60+
this.draining = false;
61+
});
6862
}
6963

7064
restart() {

0 commit comments

Comments
 (0)