Browse Source

fix: internalModuleReadJSON for unpacked JSON (#26749)

Vadim 4 years ago
parent
commit
efca7007b6
2 changed files with 4 additions and 2 deletions
  1. 2 1
      lib/asar/fs-wrapper.ts
  2. 2 1
      spec/asar-spec.js

+ 2 - 1
lib/asar/fs-wrapper.ts

@@ -689,7 +689,8 @@ export const wrapFsWithAsar = (fs: Record<string, any>) => {
     if (info.size === 0) return ['', false];
     if (info.unpacked) {
       const realPath = archive.copyFileOut(filePath);
-      return fs.readFileSync(realPath, { encoding: 'utf8' });
+      const str = fs.readFileSync(realPath, { encoding: 'utf8' });
+      return [str, str.length > 0];
     }
 
     logASARAccess(asarPath, filePath, info.offset);

+ 2 - 1
spec/asar-spec.js

@@ -1444,7 +1444,8 @@ describe('asar package', function () {
 
       it('reads a normal file with unpacked files', function () {
         const p = path.join(asarDir, 'unpack.asar', 'a.txt');
-        expect(internalModuleReadJSON(p).toString().trim()).to.equal('a');
+        const [s, c] = internalModuleReadJSON(p);
+        expect([s.toString().trim(), c]).to.eql(['a', true]);
       });
     });