From a40d697542244c0938d226e07aba112ed99d8010 Mon Sep 17 00:00:00 2001 From: Bryce Gibson Date: Tue, 23 Jan 2018 07:58:02 +1100 Subject: [PATCH] feat: add createReadStream support for resources --- src/steps/shim-fs.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/steps/shim-fs.ts b/src/steps/shim-fs.ts index 599d59d..806afd8 100644 --- a/src/steps/shim-fs.ts +++ b/src/steps/shim-fs.ts @@ -16,6 +16,7 @@ if (Object.keys(manifest).length) { const fs = require('fs') const originalReadFile = fs.readFile const originalReadFileSync = fs.readFileSync + const originalCreateReadStream = fs.createReadStream const originalReaddir = fs.readdir const originalReaddirSync = fs.readdirSync const originalStatSync = fs.statSync @@ -139,6 +140,24 @@ if (Object.keys(manifest).length) { }) }) }, + createReadStream: function createReadStream(file: any, options: any) { + setupManifest() + const entry = manifest[file] + if (!entry || !isString(file)) { + return originalCreateReadStream.apply(fs, arguments) + } + const [offset, length] = entry + const resourceOffset = resourceStart + offset + const opts = !options ? {} : isString(options) ? { encoding: options } : options + + return fs.createReadStream( + process.execPath, + Object.assign({}, opts, { + start: resourceOffset, + end: resourceOffset + length + }) + ) + }, readFileSync: function readFileSync(file: any, options: any) { setupManifest() const entry = manifest[file]