UNPKG

webpack-userscript

Version:
91 lines 3.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PackageLoader = exports.ProviderLoader = exports.FileLoader = exports.ObjectLoader = void 0; const tslib_1 = require("tslib"); const node_path_1 = tslib_1.__importDefault(require("node:path")); const node_util_1 = require("node:util"); const fs_1 = require("../../fs"); class ObjectLoader { constructor(headers) { this.headers = headers; } load() { return this.headers; } } exports.ObjectLoader = ObjectLoader; class FileLoader { constructor(file, root) { this.file = file; this.root = root; this.headersFileTimestamp = 0; } load(compilation) { var _a, _b; return tslib_1.__awaiter(this, void 0, void 0, function* () { const getFileTimestampAsync = (0, node_util_1.promisify)(compilation.fileSystemInfo.getFileTimestamp.bind(compilation.fileSystemInfo)); const resolvedHeadersFile = node_path_1.default.resolve((_a = this.root) !== null && _a !== void 0 ? _a : compilation.compiler.context, this.file); const ts = yield getFileTimestampAsync(resolvedHeadersFile); if (this.headers && ts && typeof ts === 'object' && typeof ts.timestamp === 'number' && this.headersFileTimestamp >= ts.timestamp) { // file no change return this.headers; } if (ts && typeof ts === 'object') { this.headersFileTimestamp = (_b = ts.timestamp) !== null && _b !== void 0 ? _b : this.headersFileTimestamp; } compilation.fileDependencies.add(resolvedHeadersFile); return (this.headers = yield (0, fs_1.readJSON)(resolvedHeadersFile, compilation.inputFileSystem)); }); } } exports.FileLoader = FileLoader; class ProviderLoader { constructor(provider) { this.provider = provider; } load(headers, ctx) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return this.provider(headers, ctx); }); } } exports.ProviderLoader = ProviderLoader; class PackageLoader { constructor(root) { this.root = root; } load(compiler) { var _a; return tslib_1.__awaiter(this, void 0, void 0, function* () { if (!this.headers) { try { const cwd = yield (0, fs_1.findPackage)((_a = this.root) !== null && _a !== void 0 ? _a : compiler.context, compiler.inputFileSystem); const packageJson = yield (0, fs_1.readJSON)(node_path_1.default.join(cwd, 'package.json'), compiler.inputFileSystem); this.headers = { name: packageJson.name, version: packageJson.version, description: packageJson.description, author: packageJson.author, homepage: packageJson.homepage, supportURL: typeof packageJson.bugs === 'string' ? packageJson.bugs : typeof packageJson.bugs === 'object' && typeof packageJson.bugs.url === 'string' ? packageJson.bugs.url : undefined, }; } catch (e) { this.headers = {}; } } return this.headers; }); } } exports.PackageLoader = PackageLoader; //# sourceMappingURL=loaders.js.map