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) • 1.01 kB
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.getYarnWorkspaceRoot,
pnpm: pnpm_1.getPnpmWorkspaceRoot,
rush: rush_1.getRushWorkspaceRoot,
npm: npm_1.getNpmWorkspaceRoot,
lerna: lerna_1.getLernaWorkspaceRoot,
};
const preferred = process.env
.PREFERRED_WORKSPACE_MANAGER;
function getWorkspaceRoot(cwd) {
const workspaceImplementation = preferred || implementations_1.getWorkspaceImplementation(cwd);
if (!workspaceImplementation || !workspaceGetter[workspaceImplementation]) {
return;
}
return workspaceGetter[workspaceImplementation](cwd);
}
exports.getWorkspaceRoot = getWorkspaceRoot;