jest-allure2-reporter
Version:
Idiomatic Jest reporter for Allure Framework
62 lines • 2.18 kB
JavaScript
;
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