NPM version Build Status License
Retrieves a name:pathname Map for a given workspaces config.
Long version: Reads the workspaces property from a valid workspaces configuration object and traverses the paths and globs defined there in order to find valid nested packages and return a Map of all found packages where keys are package names and values are folder locations.
npm install @npmcli/map-workspaces
const mapWorkspaces = require('@npmcli/map-workspaces') await mapWorkspaces({ cwd, pkg: { workspaces: { packages: [ "a", "b" ] } } }) // -> // Map { // 'a': '<cwd>/a' // 'b': '<cwd>/b' // }
Given a folder structure such as:
├── package.json
└── apps
├── a
│ └── package.json
├── b
│ └── package.json
└── c
└── package.json
const mapWorkspaces = require('@npmcli/map-workspaces') await mapWorkspaces({ cwd, pkg: { workspaces: [ "apps/*" ] } }) // -> // Map { // 'a': '<cwd>/apps/a' // 'b': '<cwd>/apps/b' // 'c': '<cwd>/apps/c' // }
opts:pkg: A validpackage.jsonObjectcwd: A String defining the base directory to use when reading globs and paths.ignore: An Array of paths to be ignored when using globs to look for nested package.- ...Also support all other glob options
A Map in which keys are package names and values are the pathnames for each found workspace.