From ded3375fae9ca3e0b4683c7418a0d7bcccd2421f Mon Sep 17 00:00:00 2001 From: Dan Rose Date: Fri, 31 Jan 2025 17:32:06 -0600 Subject: [PATCH 1/2] Don't prune optional dependencies --- workspaces/arborist/lib/arborist/build-ideal-tree.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/workspaces/arborist/lib/arborist/build-ideal-tree.js b/workspaces/arborist/lib/arborist/build-ideal-tree.js index d04ddf27b6965..d0039f54a8659 100644 --- a/workspaces/arborist/lib/arborist/build-ideal-tree.js +++ b/workspaces/arborist/lib/arborist/build-ideal-tree.js @@ -195,7 +195,7 @@ module.exports = cls => class IdealTreeBuilder extends cls { await this.#applyUserRequests(options) await this.#buildDeps() await this.#fixDepFlags() - await this.#pruneFailedOptional() + await this.#throwFailure() await this.#checkEngineAndPlatform() } finally { process.emit('timeEnd', 'idealTree') @@ -1496,16 +1496,11 @@ This is a one-time fix-up, please be patient... } } - #pruneFailedOptional () { + #throwFailure () { for (const node of this.#loadFailures) { if (!node.optional) { throw node.errors[0] } - - const set = optionalSet(node) - for (const node of set) { - node.parent = null - } } } } From 3922b814d01a11807ae7503e2b77c7b44a5c76e5 Mon Sep 17 00:00:00 2001 From: Dan Rose Date: Fri, 31 Jan 2025 17:50:48 -0600 Subject: [PATCH 2/2] remove now-unused optionalSet import --- workspaces/arborist/lib/arborist/build-ideal-tree.js | 1 - 1 file changed, 1 deletion(-) diff --git a/workspaces/arborist/lib/arborist/build-ideal-tree.js b/workspaces/arborist/lib/arborist/build-ideal-tree.js index d0039f54a8659..043b02519b1f6 100644 --- a/workspaces/arborist/lib/arborist/build-ideal-tree.js +++ b/workspaces/arborist/lib/arborist/build-ideal-tree.js @@ -29,7 +29,6 @@ const { defaultLockfileVersion } = Shrinkwrap const Node = require('../node.js') const Link = require('../link.js') const addRmPkgDeps = require('../add-rm-pkg-deps.js') -const optionalSet = require('../optional-set.js') const { checkEngine, checkPlatform } = require('npm-install-checks') const relpath = require('../relpath.js') const resetDepFlags = require('../reset-dep-flags.js')