42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const base_resource_1 = __importDefault(require("./base-resource"));
|
|
const asar_1 = __importDefault(require("../../utils/asar"));
|
|
const path_1 = __importDefault(require("path"));
|
|
const asar = new asar_1.default();
|
|
class AsarResource extends base_resource_1.default {
|
|
constructor(resourcePath) {
|
|
// NOTE: use a normalized path (GH-2101 PR)
|
|
super(path_1.default.normalize(resourcePath));
|
|
this._archive = '';
|
|
this._fileName = '';
|
|
}
|
|
_createContentStream() {
|
|
try {
|
|
this._contentStream = asar.extractFileToReadStream(this._archive, this._fileName);
|
|
}
|
|
catch (e) {
|
|
e.message = asar.getFileInAsarNotFoundErrorMessage(this._archive, this._fileName);
|
|
this._error = e;
|
|
}
|
|
}
|
|
get isArchiveFound() {
|
|
return !!this._archive;
|
|
}
|
|
async init() {
|
|
if (!await asar.isAsar(this._path))
|
|
return;
|
|
const { archive, fileName } = await asar.parse(this._path);
|
|
this._archive = archive;
|
|
this._fileName = fileName;
|
|
await this._checkAccess(this._archive);
|
|
if (!this._error)
|
|
this._createContentStream();
|
|
}
|
|
}
|
|
exports.default = AsarResource;module.exports = exports.default;
|
|
|