Innovenergy_trunk/frontend/node_modules/testcafe-hammerhead/lib/request-pipeline/file-request/asar-resource.js

42 lines
1.4 KiB
JavaScript
Raw Normal View History

"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;