UNPKG

@pnpm/core

Version:

Fast, disk space efficient installation engine

63 lines 2.58 kB
"use strict"; 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]) { if (!pref) { pref = (opts.currentPrefs[alias].startsWith('workspace:') && opts.updateWorkspaceDependencies === true) ? 'workspace:*' : 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, raw: alias && opts.currentPrefs?.[alias]?.startsWith('workspace:') ? `${alias}@${opts.currentPrefs[alias]}` : rawWantedDependency, }; if (pref) { return { ...result, pref, }; } if (alias && opts.preferredSpecs?.[alias]) { return { ...result, pref: opts.preferredSpecs[alias], raw: `${rawWantedDependency}@${opts.preferredSpecs[alias]}`, }; } if (alias && opts.overrides?.[alias]) { return { ...result, pref: opts.overrides[alias], raw: `${alias}@${opts.overrides[alias]}`, }; } return { ...result, pref: opts.defaultTag, }; }) .filter((wd) => wd !== null); } //# sourceMappingURL=parseWantedDependencies.js.map