reiji-h 1 год назад
Родитель
Сommit
075ab85d07

+ 3 - 2
apps/app/src/server/service/file-uploader/local.ts

@@ -1,4 +1,5 @@
 import type { ReadStream } from 'fs';
+import type { Writable } from 'stream';
 import { Readable } from 'stream';
 import { pipeline } from 'stream/promises';
 
@@ -163,7 +164,7 @@ module.exports = function(crowi) {
     // mkdir -p
     mkdir.sync(dirpath);
 
-    const writeStream = fs.createWriteStream(filePath);
+    const writeStream: Writable = fs.createWriteStream(filePath);
 
     return pipeline(fileStream, writeStream);
   };
@@ -178,7 +179,7 @@ module.exports = function(crowi) {
     const fileStream = new Readable();
     fileStream.push(data);
     fileStream.push(null); // EOF
-    const writeStream = fs.createWriteStream(absFilePath);
+    const writeStream: Writable = fs.createWriteStream(absFilePath);
     return pipeline(fileStream, writeStream);
   };
 

+ 3 - 2
apps/app/src/server/service/growi-bridge/index.ts

@@ -1,6 +1,7 @@
 import fs from 'fs';
 import path from 'path';
-import { pipeline } from 'stream/promises';
+import { pipeline } from 'stream';
+import { pipeline as pipelinePromise } from 'stream/promises';
 
 import unzipStream, { type Entry } from 'unzip-stream';
 
@@ -102,7 +103,7 @@ class GrowiBridgeService {
     });
 
     try {
-      await unzipEntryStream;
+      await pipelinePromise([unzipEntryStream]);
       await tapPromise;
     }
     // if zip is broken

+ 3 - 3
apps/app/src/server/service/import/import.ts

@@ -344,10 +344,10 @@ export class ImportService {
   async unzip(zipFile) {
     const readStream = fs.createReadStream(zipFile);
     const parseStream = unzipStream.Parse();
-    const unzipStreamPipe = pipelinePromise(readStream, parseStream);
+    const unzipStreamPipe = pipeline(readStream, parseStream);
     const files: string[] = [];
 
-    unzipStreamPipe.on('entry', (/** @type {Entry} */ entry) => {
+    const unzipEntryStream = unzipStreamPipe.on('entry', (/** @type {Entry} */ entry) => {
       const fileName = entry.path;
       // https://regex101.com/r/mD4eZs/6
       // prevent from unexpecting attack doing unzip file (path traversal attack)
@@ -370,7 +370,7 @@ export class ImportService {
       }
     });
 
-    await unzipStreamPipe;
+    await pipelinePromise([unzipEntryStream]);
 
     return files;
   }