takeru0001 5 лет назад
Родитель
Сommit
0efe072699
1 измененных файлов с 39 добавлено и 5 удалено
  1. 39 5
      src/server/models/page.js

+ 39 - 5
src/server/models/page.js

@@ -1292,15 +1292,49 @@ module.exports = function(crowi) {
     newPagePathPrefix = crowi.xss.process(newPagePathPrefix); // eslint-disable-line no-param-reassign
     newPagePathPrefix = crowi.xss.process(newPagePathPrefix); // eslint-disable-line no-param-reassign
 
 
     // find manageable descendants
     // find manageable descendants
-    const pages = await this.findManageableListWithDescendants(targetPage, user, options);
+    const readStream = this.findManageableListWithDescendants(targetPage, user, options);
 
 
     // TODO GW-4634 use stream
     // TODO GW-4634 use stream
-    const promise = pages.map((page) => {
-      const newPagePath = page.path.replace(pathRegExp, newPagePathPrefix);
-      return this.rename(page, newPagePath, user, options);
+    // const promise = pages.map((page) => {
+    //   const newPagePath = page.path.replace(pathRegExp, newPagePathPrefix);
+    //   return this.rename(page, newPagePath, user, options);
+    // });
+
+    // await Promise.allSettled(promise);
+
+
+    const { Writable, Transform } = require('stream');
+    const streamToPromise = require('stream-to-promise');
+
+    const { createBatchStream } = require('@server/util/batch-stream');
+
+    const convertStream = new Transform({
+      objectMode: true,
+      async transform(doc, encoding, callback) {
+        console.log(doc);
+
+        callback();
+      },
     });
     });
 
 
-    await Promise.allSettled(promise);
+    const batchStream = createBatchStream(100);
+
+    const writeStream = new Writable({
+      objectMode: true,
+      async write(batch, encoding, callback) {
+        const body = [];
+        // batch.forEach(doc => prepareBodyForCreate(body, doc));
+      },
+      final(callback) {
+        logger.info('ifewierqlavfab');
+        callback();
+      },
+    });
+
+    readStream
+      .pipe(batchStream)
+      .pipe(convertStream),
+
 
 
     targetPage.path = newPagePathPrefix;
     targetPage.path = newPagePathPrefix;
     return targetPage;
     return targetPage;