UNPKG

@pnpm/core

Version:

Fast, disk space efficient installation engine

71 lines 3.53 kB
"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