diff --git a/workspaces/arborist/lib/arborist/load-virtual.js b/workspaces/arborist/lib/arborist/load-virtual.js index 947659f177eef..b2a6ec2315a4f 100644 --- a/workspaces/arborist/lib/arborist/load-virtual.js +++ b/workspaces/arborist/lib/arborist/load-virtual.js @@ -1,5 +1,6 @@ // mixin providing the loadVirtual method const localeCompare = require('@isaacs/string-locale-compare')('en') +const mapWorkspaces = require('@npmcli/map-workspaces') const { resolve } = require('path') @@ -21,7 +22,6 @@ const loadRoot = Symbol('loadRoot') const loadNode = Symbol('loadVirtualNode') const loadLink = Symbol('loadVirtualLink') const loadWorkspaces = Symbol.for('loadWorkspaces') -const loadWorkspacesVirtual = Symbol.for('loadWorkspacesVirtual') const flagsSuspect = Symbol.for('flagsSuspect') const reCalcDepFlags = Symbol('reCalcDepFlags') const checkRootEdges = Symbol('checkRootEdges') @@ -157,7 +157,7 @@ module.exports = cls => class VirtualLoader extends cls { } const lockWS = [] - const workspaces = this[loadWorkspacesVirtual]({ + const workspaces = mapWorkspaces.virtual({ cwd: this.path, lockfile: s.data, }) diff --git a/workspaces/arborist/lib/arborist/load-workspaces.js b/workspaces/arborist/lib/arborist/load-workspaces.js index 0a7965ae30ca1..effa5a0cda24f 100644 --- a/workspaces/arborist/lib/arborist/load-workspaces.js +++ b/workspaces/arborist/lib/arborist/load-workspaces.js @@ -1,33 +1,19 @@ const mapWorkspaces = require('@npmcli/map-workspaces') -const _appendWorkspaces = Symbol('appendWorkspaces') // shared ref used by other mixins/Arborist const _loadWorkspaces = Symbol.for('loadWorkspaces') -const _loadWorkspacesVirtual = Symbol.for('loadWorkspacesVirtual') module.exports = cls => class MapWorkspaces extends cls { - [_appendWorkspaces] (node, workspaces) { - if (node && workspaces.size) { - node.workspaces = workspaces - } - - return node - } - async [_loadWorkspaces] (node) { - if (node.workspaces) { - return node - } - const workspaces = await mapWorkspaces({ cwd: node.path, pkg: node.package, }) - return this[_appendWorkspaces](node, workspaces) - } + if (node && workspaces.size) { + node.workspaces = workspaces + } - [_loadWorkspacesVirtual] (opts) { - return mapWorkspaces.virtual(opts) + return node } }