@@ -3,7 +3,6 @@ import { randomUUID } from "crypto";
33import { createWriteStream , readFile , unlinkSync , WriteStream } from "fs" ;
44import { tmpdir } from "os" ;
55import { join } from "path" ;
6-
76import { createGzip , Gzip } from "zlib" ;
87
98export 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