@pnpm/core
Version:
Fast, disk space efficient installation engine
54 lines • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseWantedDependencies = parseWantedDependencies;
const parse_wanted_dependency_1 = require("@pnpm/parse-wanted-dependency");
function parseWantedDependencies(rawWantedDependencies, opts) {
return rawWantedDependencies
.map((rawWantedDependency) => {
const parsed = (0, parse_wanted_dependency_1.parseWantedDependency)(rawWantedDependency);
const alias = parsed['alias'];
let bareSpecifier = parsed['bareSpecifier'];
if (!opts.allowNew && (!alias || !opts.currentBareSpecifiers[alias])) {
return null;
}
if (alias && opts.defaultCatalog?.[alias] && ((!opts.currentBareSpecifiers[alias] && bareSpecifier === undefined) ||
opts.defaultCatalog[alias] === bareSpecifier ||
opts.defaultCatalog[alias] === opts.currentBareSpecifiers[alias])) {
bareSpecifier = 'catalog:';
}
if (alias && opts.currentBareSpecifiers[alias]) {
bareSpecifier ??= opts.currentBareSpecifiers[alias];
}
const result = {
alias,
dev: Boolean(opts.dev || alias && !!opts.devDependencies[alias]),
optional: Boolean(opts.optional || alias && !!opts.optionalDependencies[alias]),
prevSpecifier: alias && opts.currentBareSpecifiers[alias],
saveCatalogName: opts.saveCatalogName,
};
if (bareSpecifier) {
return {
...result,
bareSpecifier,
};
}
if (alias && opts.preferredSpecs?.[alias]) {
return {
...result,
bareSpecifier: opts.preferredSpecs[alias],
};
}
if (alias && opts.overrides?.[alias]) {
return {
...result,
bareSpecifier: opts.overrides[alias],
};
}
return {
...result,
bareSpecifier: opts.defaultTag,
};
})
.filter((wd) => wd !== null);
}
//# sourceMappingURL=parseWantedDependencies.js.map