UNPKG

@node-kit/pnpm-workspace-root

Version:
66 lines (62 loc) 3.08 kB
import { join, dirname } from 'path'; import { PnpmError } from '@pnpm/error'; import findUp from 'find-up'; import { getRealPathSync, getRealPath } from '@node-kit/extra.fs'; function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } var WORKSPACE_DIR_ENV_VAR = "NPM_CONFIG_WORKSPACE_DIR"; var WORKSPACE_MANIFEST_FILENAME = "pnpm-workspace.yaml"; function pnpmWorkspaceRoot() { return _pnpmWorkspaceRoot.apply(this, arguments); } function _pnpmWorkspaceRoot() { _pnpmWorkspaceRoot = _asyncToGenerator(function* () { var _process$env$WORKSPAC2; var cwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd(); var workspaceManifestDirEnvVar = (_process$env$WORKSPAC2 = process.env[WORKSPACE_DIR_ENV_VAR]) !== null && _process$env$WORKSPAC2 !== void 0 ? _process$env$WORKSPAC2 : process.env[WORKSPACE_DIR_ENV_VAR.toLowerCase()]; var workspaceManifestPath = workspaceManifestDirEnvVar ? join(workspaceManifestDirEnvVar, "pnpm-workspace.yaml") : yield findUp([WORKSPACE_MANIFEST_FILENAME, "pnpm-workspace.yml"], { cwd: yield getRealPath(cwd) }); if (workspaceManifestPath !== null && workspaceManifestPath !== void 0 && workspaceManifestPath.endsWith(".yml")) { throw new PnpmError("BAD_WORKSPACE_MANIFEST_NAME", 'The workspace manifest file should be named "pnpm-workspace.yaml". File found: '.concat(workspaceManifestPath)); } return workspaceManifestPath && dirname(workspaceManifestPath) || null; }); return _pnpmWorkspaceRoot.apply(this, arguments); } function pnpmWorkspaceRootSync() { var _process$env$WORKSPAC; var cwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd(); var workspaceManifestDirEnvVar = (_process$env$WORKSPAC = process.env[WORKSPACE_DIR_ENV_VAR]) !== null && _process$env$WORKSPAC !== void 0 ? _process$env$WORKSPAC : process.env[WORKSPACE_DIR_ENV_VAR.toLowerCase()]; var workspaceManifestPath = workspaceManifestDirEnvVar ? join(workspaceManifestDirEnvVar, "pnpm-workspace.yaml") : findUp.sync([WORKSPACE_MANIFEST_FILENAME, "pnpm-workspace.yml"], { cwd: getRealPathSync(cwd) }); if (workspaceManifestPath !== null && workspaceManifestPath !== void 0 && workspaceManifestPath.endsWith(".yml")) { throw new PnpmError("BAD_WORKSPACE_MANIFEST_NAME", 'The workspace manifest file should be named "pnpm-workspace.yaml". File found: '.concat(workspaceManifestPath)); } return workspaceManifestPath && dirname(workspaceManifestPath) || null; } export { pnpmWorkspaceRoot, pnpmWorkspaceRootSync };