diff --git a/package.json b/package.json index 5a0e4fc..181bacc 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@types/react-router-dom": "^5.1.7", "@types/sharp": "^0.28.0", "babel-polyfill": "^6.26.0", + "can-ndjson-stream": "^1.0.2", "comlink-loader": "^2.0.0", "express": "^4.17.1", "express-paginate": "^1.0.2", diff --git a/src/client/workers/extractCovers.worker.ts b/src/client/workers/extractCovers.worker.ts index 39dd99d..53eaa8a 100644 --- a/src/client/workers/extractCovers.worker.ts +++ b/src/client/workers/extractCovers.worker.ts @@ -3,10 +3,11 @@ import { extractCoverFromComicBookArchive, } from "../actions/fileops.actions"; import { IExtractedComicBookCoverFile } from "../../server/interfaces/folder.interface"; +const ndjsonStream = require("can-ndjson-stream"); export const greet = async ( path: string, -): Promise => { +): Promise => { const targetOptions = { sourceFolder: path, extractTarget: "all", @@ -27,5 +28,16 @@ export const greet = async ( }, fileObjects, ); - return JSON.stringify(fo); + const reader = await ndjsonStream(fo).getReader(); + reader.read().then(function process({ done, value }) { + if (done) { + console.log("done"); + return; + } + + console.log(value); + + return reader.read().then(process); + }); + // return JSON.stringify(fo); }; diff --git a/yarn-error.log b/yarn-error.log index 5ce0f2f..5ae5160 100644 --- a/yarn-error.log +++ b/yarn-error.log @@ -1,5 +1,5 @@ Arguments: - /Users/rishi/.nvm/versions/node/v10.16.0/bin/node /Users/rishi/.yarn/bin/yarn.js add oboe.js + /Users/rishi/.nvm/versions/node/v10.16.0/bin/node /Users/rishi/.yarn/bin/yarn.js add @types/can-ndjson-stream -D PATH: /Users/rishi/.yarn/bin:/Users/rishi/.config/yarn/global/node_modules/.bin:/Users/rishi/.nvm/versions/node/v10.16.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin @@ -14,7 +14,7 @@ Platform: darwin x64 Trace: - Error: https://registry.yarnpkg.com/oboe.js: Not found + Error: https://registry.yarnpkg.com/@types%2fcan-ndjson-stream: Not found at Request.params.callback [as _callback] (/Users/rishi/.yarn/lib/cli.js:66988:18) at Request.self.callback (/Users/rishi/.yarn/lib/cli.js:140749:22) at Request.emit (events.js:198:13) @@ -51,7 +51,7 @@ npm manifest: "@types/react-router-dom": "^5.1.7", "@types/sharp": "^0.28.0", "babel-polyfill": "^6.26.0", - "clooney": "^0.6.6", + "can-ndjson-stream": "^1.0.2", "comlink-loader": "^2.0.0", "express": "^4.17.1", "express-paginate": "^1.0.2", @@ -61,7 +61,8 @@ npm manifest: "react": "^17.0.1", "react-dom": "^17.0.1", "react-hooks-worker": "^1.0.0", - "sharp": "^0.28.1" + "sharp": "^0.28.1", + "through2": "^4.0.2" }, "devDependencies": { "@babel/cli": "^7.13.10", @@ -3397,6 +3398,18 @@ Lockfile: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + can-namespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/can-namespace/-/can-namespace-1.0.0.tgz#0b8fafafbb11352b9ead4222ffe3822405b43e99" + integrity sha1-C4+vr7sRNSuerUIi/+OCJAW0Ppk= + + can-ndjson-stream@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/can-ndjson-stream/-/can-ndjson-stream-1.0.2.tgz#6a8131f9c8c697215163b3fe49a0c02e4439cb47" + integrity sha512-//tM8wcTV42SyD1JGua7WMVftZEeTwapcHJTTe3vJwuVywXD01CJbdEkgwRYjy2evIByVJV21ZKBdSv5ygIw1w== + dependencies: + can-namespace "^1.0.0" + caniuse-lite@^1.0.30001181: version "1.0.30001185" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz#3482a407d261da04393e2f0d61eefbc53be43b95" @@ -3647,13 +3660,6 @@ Lockfile: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - clooney@^0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/clooney/-/clooney-0.6.6.tgz#0b480843c30dd289ee558ec8c2336dbbb3fd38cd" - integrity sha512-kux3thg0N+uWZXTpYbthellECgsDw8PJ3IZmiVVyuavAEb/gBbC/u0ksZ6kHpZe5YT4H1Xs3TVSIQkzUfRqi8A== - dependencies: - comlinkjs "2.3.6" - cmd-shim@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" @@ -3778,11 +3784,6 @@ Lockfile: resolved "https://registry.yarnpkg.com/comlink/-/comlink-4.3.0.tgz#80b3366baccd87897dab3638ebfcfae28b2f87c7" integrity sha512-mu4KKKNuW8TvkfpW/H88HBPeILubBS6T94BdD1VWBXNXfiyqVtwUCVNO1GeNOBTsIswzsMjWlycYr+77F5b84g== - comlinkjs@2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/comlinkjs/-/comlinkjs-2.3.6.tgz#a756c2530062af292a705372484d4e2eff47729f" - integrity sha512-4WDd2iMM5AhnIRgUNMLWEj3gtIfEfu+JjSPUCYAa/K5IzJRvx/JAMC5jF53Exim7d67vnkRGd0i6vx27rGF2yA== - commander@^2.12.1, commander@^2.20.0, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -10229,6 +10230,15 @@ Lockfile: dependencies: mute-stream "~0.0.4" + readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -10242,15 +10252,6 @@ Lockfile: string_decoder "~1.1.1" util-deprecate "~1.0.1" - readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readdir-scoped-modules@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" @@ -11817,6 +11818,13 @@ Lockfile: readable-stream "~2.3.6" xtend "~4.0.1" + through2@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" diff --git a/yarn.lock b/yarn.lock index 7c2a17d..086b24a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3240,6 +3240,18 @@ camelcase@^6.0.0, camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +can-namespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/can-namespace/-/can-namespace-1.0.0.tgz#0b8fafafbb11352b9ead4222ffe3822405b43e99" + integrity sha1-C4+vr7sRNSuerUIi/+OCJAW0Ppk= + +can-ndjson-stream@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/can-ndjson-stream/-/can-ndjson-stream-1.0.2.tgz#6a8131f9c8c697215163b3fe49a0c02e4439cb47" + integrity sha512-//tM8wcTV42SyD1JGua7WMVftZEeTwapcHJTTe3vJwuVywXD01CJbdEkgwRYjy2evIByVJV21ZKBdSv5ygIw1w== + dependencies: + can-namespace "^1.0.0" + caniuse-lite@^1.0.30001181: version "1.0.30001185" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz#3482a407d261da04393e2f0d61eefbc53be43b95"