Skip to content

Commit aad7157

Browse files
committed
Await write stream closed in TempGzipFile
1 parent a07fa8b commit aad7157

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

src/common/tempGzipFile.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { randomUUID } from "crypto";
33
import { createWriteStream, readFile, unlinkSync, WriteStream } from "fs";
44
import { tmpdir } from "os";
55
import { join } from "path";
6-
76
import { createGzip, Gzip } from "zlib";
87

98
export default class TempGzipFile {
@@ -12,6 +11,7 @@ export default class TempGzipFile {
1211
private gzip: Gzip;
1312
private writeStream: WriteStream;
1413
private readyPromise: Promise<void>;
14+
private closedPromise: Promise<void>;
1515

1616
constructor() {
1717
this.uuid = randomUUID();
@@ -21,6 +21,10 @@ export default class TempGzipFile {
2121
this.writeStream.once("ready", resolve);
2222
this.writeStream.once("error", reject);
2323
});
24+
this.closedPromise = new Promise<void>((resolve) => {
25+
this.writeStream.once("close", resolve);
26+
this.writeStream.once("error", resolve);
27+
});
2428
this.gzip = createGzip();
2529
this.gzip.pipe(this.writeStream);
2630
}
@@ -55,11 +59,12 @@ export default class TempGzipFile {
5559
}
5660

5761
async close() {
58-
return new Promise<void>((resolve) => {
62+
await new Promise<void>((resolve) => {
5963
this.gzip.end(() => {
6064
resolve();
6165
});
6266
});
67+
await this.closedPromise;
6368
}
6469

6570
async delete() {

0 commit comments

Comments
 (0)