system: Linux mars.sprixweb.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
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)
}
[_loadWorkspacesVirtual] (opts) {
return mapWorkspaces.virtual(opts)
}
}