workspace-tools
Version:
A collection of tools that are useful in a git-controlled monorepo that is managed by one of these software:
26 lines (25 loc) • 991 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const implementations_1 = require("./implementations");
const pnpm_1 = require("./implementations/pnpm");
const yarn_1 = require("./implementations/yarn");
const rush_1 = require("./implementations/rush");
const npm_1 = require("./implementations/npm");
const lerna_1 = require("./implementations/lerna");
const workspaceGetter = {
yarn: yarn_1.getYarnWorkspaces,
pnpm: pnpm_1.getPnpmWorkspaces,
rush: rush_1.getRushWorkspaces,
npm: npm_1.getNpmWorkspaces,
lerna: lerna_1.getLernaWorkspaces,
};
const preferred = process.env
.PREFERRED_WORKSPACE_MANAGER;
function getWorkspaces(cwd) {
const workspaceImplementation = preferred || implementations_1.getWorkspaceImplementation(cwd);
if (!workspaceImplementation || !workspaceGetter[workspaceImplementation]) {
return [];
}
return workspaceGetter[workspaceImplementation](cwd);
}
exports.getWorkspaces = getWorkspaces;