@npmcli/map-workspaces

    1.0.4 • Public • Published

    @npmcli/map-workspaces

    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.

    Install

    npm install map-workspaces

    Usage:

    const mapWorkspaces = require('@npmcli/map-workspaces')
    await mapWorkspaces({
      cwd,
      pkg: {
        workspaces: {
          packages: [
            "a",
            "b"
          ]
        }
      }
    })
    // ->
    // Map {
    //   'a': '<cwd>/a'
    //   'b': '<cwd>/b'
    // }

    Examples:

    Glob usage:

    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'
    // }

    API:

    mapWorkspaces(opts) -> Promise<Map>

    • opts:
      • pkg: A valid package.json Object
      • cwd: 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

    Returns

    A Map in which keys are package names and values are the pathnames for each found workspace.

    LICENSE

    ISC

    Install

    npm i @npmcli/map-workspaces

    DownloadsWeekly Downloads

    421,794

    Version

    1.0.4

    License

    ISC

    Unpacked Size

    8.9 kB

    Total Files

    4

    Last publish

    Collaborators

    • fritzy
    • isaacs
    • darcyclarke
    • ruyadorno
    • nlf
    • gar
    • lukekarrys