@pnpm/core
Version:
Fast, disk space efficient installation engine
71 lines • 3.53 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPeerDependencyIssues = getPeerDependencyIssues;
const lockfile_preferred_versions_1 = require("@pnpm/lockfile.preferred-versions");
const resolve_dependencies_1 = require("@pnpm/resolve-dependencies");
const get_context_1 = require("@pnpm/get-context");
const hooks_read_package_hook_1 = require("@pnpm/hooks.read-package-hook");
const normalize_registries_1 = require("@pnpm/normalize-registries");
const parse_overrides_1 = require("@pnpm/parse-overrides");
async function getPeerDependencyIssues(projects, opts) {
const lockfileDir = opts.lockfileDir ?? process.cwd();
const ctx = await (0, get_context_1.getContext)({
force: false,
extraBinPaths: [],
lockfileDir,
nodeLinker: opts.nodeLinker ?? 'isolated',
registries: normalize_registries_1.DEFAULT_REGISTRIES,
useLockfile: true,
allProjects: projects,
...opts,
});
const projectsToResolve = Object.values(ctx.projects).map((project) => ({
...project,
updatePackageManifest: false,
wantedDependencies: (0, resolve_dependencies_1.getWantedDependencies)(project.manifest, opts),
}));
const preferredVersions = (0, lockfile_preferred_versions_1.getPreferredVersionsFromLockfileAndManifests)(ctx.wantedLockfile.packages, Object.values(ctx.projects).map(({ manifest }) => manifest));
const overrides = (0, parse_overrides_1.parseOverrides)(opts.overrides ?? {}, opts.catalogs ?? {});
const { peerDependencyIssuesByProjects, waitTillAllFetchingsFinish, } = await (0, resolve_dependencies_1.resolveDependencies)(projectsToResolve, {
currentLockfile: ctx.currentLockfile,
allowedDeprecatedVersions: {},
allowUnusedPatches: false,
catalogs: opts.catalogs,
defaultUpdateDepth: -1,
dedupePeerDependents: opts.dedupePeerDependents,
dryRun: true,
engineStrict: false,
force: false,
forceFullResolution: true,
hooks: {
readPackage: (0, hooks_read_package_hook_1.createReadPackageHook)({
ignoreCompatibilityDb: opts.ignoreCompatibilityDb,
lockfileDir,
overrides,
packageExtensions: opts.packageExtensions,
readPackageHook: opts.hooks?.readPackage,
ignoredOptionalDependencies: opts.ignoredOptionalDependencies,
}),
},
linkWorkspacePackagesDepth: opts.linkWorkspacePackagesDepth ?? (opts.saveWorkspaceProtocol ? 0 : -1),
lockfileDir,
nodeVersion: opts.nodeVersion ?? process.version,
pnpmVersion: '',
preferWorkspacePackages: opts.preferWorkspacePackages,
preferredVersions,
preserveWorkspaceProtocol: false,
registries: ctx.registries,
saveWorkspaceProtocol: false, // this doesn't matter in our case. We won't write changes to package.json files
storeController: opts.storeController,
tag: 'latest',
virtualStoreDir: ctx.virtualStoreDir,
virtualStoreDirMaxLength: ctx.virtualStoreDirMaxLength,
wantedLockfile: ctx.wantedLockfile,
workspacePackages: ctx.workspacePackages ?? new Map(),
supportedArchitectures: opts.supportedArchitectures,
peersSuffixMaxLength: opts.peersSuffixMaxLength,
});
await waitTillAllFetchingsFinish();
return peerDependencyIssuesByProjects;
}
//# sourceMappingURL=getPeerDependencyIssues.js.map