Skip to content

joshuajaco/find-workspaces

Repository files navigation

find-workspaces npm downloads Coverage Status code style: prettier

Find all the workspaces of a monorepo.

It supports:

Installation

# npm
npm i find-workspaces

# yarn
yarn add find-workspaces

# pnpm
pnpm add find-workspaces

Usage

// esm
import { findWorkspaces } from "find-workspaces";
// commonjs
const { findWorkspaces } = require("find-workspaces");

const workspaces = findWorkspaces();

console.log(workspaces);

API

findWorkspaces(dirname, options)

Finds all workspaces.
Returns Workspace[] or null if dirname is not inside a monorepo.

dirname

Type: string | undefined
Default: process.cwd()

The directory to start searching for the monorepo root.

Options

Type: Options
Default: {}

See Options

findWorkspacesRoot(dirname, options)

Finds the monorepo root. Returns WorkspacesRoot or null if dirname is not inside a monorepo.

dirname

Type: string | undefined
Default: process.cwd()

The directory to start searching for the monorepo root.

Options

Type: Options
Default: {}

See Options

createWorkspacesCache()

Returns a cache which can be provided to findWorkspaces and findWorkspacesRoot.

Options

stopDir

Type: string | undefined
Default: os.homedir()

The directory to stop searching for the monorepo root.
The provided directory will not be included in the search.

cache

Type: Cache | undefined

An optional cache created by createWorkspacesCache.

Workspace

location

Type: string

The location of the workspace as an absolute path.

package

Type: PackageJson

The parsed package.json file of the workspace.

WorkspaceRoot

location

Type: string

The location of the workspace as an absolute path.

globs

Type: string[]

A list of the glob patterns used to define the workspaces.

License

MIT