UNPKG

jest-allure2-reporter

Version:
62 lines 2.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ManifestResolver = void 0; const tslib_1 = require("tslib"); /* eslint-disable @typescript-eslint/no-explicit-any */ const pkg_up_1 = tslib_1.__importDefault(require("pkg-up")); const utils_1 = require("../../../utils"); const logger_1 = require("../../../logger"); class ManifestResolver { cwd; importFn; constructor(cwd, importFunction) { this.cwd = cwd; this.importFn = importFunction; } extract = async (maybePackageName, maybeExtractor, maybeDefaultValue) => { let packageName; let extractor; let defaultValue; if (typeof maybePackageName === 'function' || Array.isArray(maybePackageName)) { packageName = undefined; extractor = maybePackageName; defaultValue = maybeExtractor; } else { packageName = maybePackageName; extractor = maybeExtractor; defaultValue = maybeDefaultValue; } const manifestPath = await this.resolveManifestPath(packageName); if (!manifestPath) { return defaultValue; } try { const manifest = await this.importFn(manifestPath); if (typeof extractor === 'function') { return extractor(manifest) ?? defaultValue; } if (typeof extractor === 'string' || Array.isArray(extractor)) { return (0, utils_1.get)(manifest, extractor, defaultValue); } return manifest; } catch { return defaultValue; } }; async resolveManifestPath(packageName) { return packageName ? this.resolveCJS(packageName) : await (0, pkg_up_1.default)({ cwd: this.cwd }); } resolveCJS(packageName) { try { return require.resolve(packageName + '/package.json'); } catch (error) { logger_1.log.trace(error, `Failed to resolve package.json for "${packageName}"`); return; } } } exports.ManifestResolver = ManifestResolver; //# sourceMappingURL=ManifestResolver.js.map