Browse Source

Chore: close fs write stream properly

SukkaW 3 months ago
parent
commit
e80af52170
1 changed files with 4 additions and 4 deletions
  1. 4 4
      Build/lib/create-file.ts

+ 4 - 4
Build/lib/create-file.ts

@@ -6,6 +6,7 @@ import type { Span } from '../trace';
 import { readFileByLine } from './fetch-text-by-line';
 import { readFileByLine } from './fetch-text-by-line';
 import { writeFile } from './misc';
 import { writeFile } from './misc';
 import { createCompareSource, fileEqualWithCommentComparator } from 'foxts/compare-source';
 import { createCompareSource, fileEqualWithCommentComparator } from 'foxts/compare-source';
+import { promisify } from 'node:util';
 
 
 export const fileEqual = createCompareSource(fileEqualWithCommentComparator);
 export const fileEqual = createCompareSource(fileEqualWithCommentComparator);
 
 
@@ -31,7 +32,7 @@ export async function compareAndWriteFile(span: Span, linesA: string[], filePath
     // So we make sure direct write to file if the content is
     // So we make sure direct write to file if the content is
     // most likely less than 250 lines
     // most likely less than 250 lines
     if (linesALen < 250) {
     if (linesALen < 250) {
-      return writeFile(filePath, fastStringArrayJoin(linesA, '\n') + '\n');
+      return writeFile(filePath, fastStringArrayJoin(linesA, '\n'));
     }
     }
 
 
     const writeStream = fs.createWriteStream(filePath);
     const writeStream = fs.createWriteStream(filePath);
@@ -40,8 +41,7 @@ export async function compareAndWriteFile(span: Span, linesA: string[], filePath
       // eslint-disable-next-line no-await-in-loop -- stream high water mark
       // eslint-disable-next-line no-await-in-loop -- stream high water mark
       if (p) await p;
       if (p) await p;
     }
     }
-
-    writeStream.end();
-    writeStream.close();
+    await promisify(writeStream.end.bind(writeStream))();
+    await promisify(writeStream.close.bind(writeStream))();
   });
   });
 }
 }