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