From abdb77f48e37fab90f3e151791ea4946eec45edd Mon Sep 17 00:00:00 2001 From: Bogdan Savluk Date: Mon, 3 Jul 2023 14:10:12 +0200 Subject: [PATCH] fix(resolve-dependencies): optimize splitNodeId, fix invalid nodeId (#6755) --- .changeset/nice-geese-fly.md | 5 +++++ pkg-manager/resolve-dependencies/src/nodeIdUtils.ts | 2 +- pkg-manager/resolve-dependencies/src/resolveDependencies.ts | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/nice-geese-fly.md diff --git a/.changeset/nice-geese-fly.md b/.changeset/nice-geese-fly.md new file mode 100644 index 0000000000..d9ae04aa9a --- /dev/null +++ b/.changeset/nice-geese-fly.md @@ -0,0 +1,5 @@ +--- +"@pnpm/resolve-dependencies": patch +--- + +Fix edge case where invalid "nodeId" was created. Small optimization. diff --git a/pkg-manager/resolve-dependencies/src/nodeIdUtils.ts b/pkg-manager/resolve-dependencies/src/nodeIdUtils.ts index 6fef2be16a..f3253d9cae 100644 --- a/pkg-manager/resolve-dependencies/src/nodeIdUtils.ts +++ b/pkg-manager/resolve-dependencies/src/nodeIdUtils.ts @@ -18,5 +18,5 @@ export function createNodeId (parentNodeId: string, pkgId: string) { } export function splitNodeId (nodeId: string) { - return nodeId.slice(1, -1).split('>') + return nodeId.split('>').slice(1, -1) } diff --git a/pkg-manager/resolve-dependencies/src/resolveDependencies.ts b/pkg-manager/resolve-dependencies/src/resolveDependencies.ts index 38143d77ed..b3d936fc15 100644 --- a/pkg-manager/resolve-dependencies/src/resolveDependencies.ts +++ b/pkg-manager/resolve-dependencies/src/resolveDependencies.ts @@ -1241,7 +1241,7 @@ async function resolveDependency ( // In case of leaf dependencies (dependencies that have no prod deps or peer deps), // we only ever need to analyze one leaf dep in a graph, so the nodeId can be short and stateless. const nodeId = pkgIsLeaf(pkg) - ? pkgResponse.body.id + ? `>${depPath}>` : createNodeId(options.parentPkg.nodeId, depPath) const parentIsInstallable = options.parentPkg.installable === undefined || options.parentPkg.installable