瀏覽代碼

Chore: close fs write stream properly

SukkaW 3 月之前
父節點
當前提交
e80af52170
共有 1 個文件被更改,包括 4 次插入4 次删除
  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 { writeFile } from './misc';
 import { createCompareSource, fileEqualWithCommentComparator } from 'foxts/compare-source';
+import { promisify } from 'node:util';
 
 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
     // most likely less than 250 lines
     if (linesALen < 250) {
-      return writeFile(filePath, fastStringArrayJoin(linesA, '\n') + '\n');
+      return writeFile(filePath, fastStringArrayJoin(linesA, '\n'));
     }
 
     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
       if (p) await p;
     }
-
-    writeStream.end();
-    writeStream.close();
+    await promisify(writeStream.end.bind(writeStream))();
+    await promisify(writeStream.close.bind(writeStream))();
   });
 }