UNPKG

@node-kit/pnpm-workspace-root

Version:
69 lines (64 loc) 3.16 kB
'use strict'; var path = require('path'); var error = require('@pnpm/error'); var findUp = require('find-up'); var extra_fs = require('@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 ? path.join(workspaceManifestDirEnvVar, "pnpm-workspace.yaml") : yield findUp([WORKSPACE_MANIFEST_FILENAME, "pnpm-workspace.yml"], { cwd: yield extra_fs.getRealPath(cwd) }); if (workspaceManifestPath !== null && workspaceManifestPath !== void 0 && workspaceManifestPath.endsWith(".yml")) { throw new error.PnpmError("BAD_WORKSPACE_MANIFEST_NAME", 'The workspace manifest file should be named "pnpm-workspace.yaml". File found: '.concat(workspaceManifestPath)); } return workspaceManifestPath && path.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 ? path.join(workspaceManifestDirEnvVar, "pnpm-workspace.yaml") : findUp.sync([WORKSPACE_MANIFEST_FILENAME, "pnpm-workspace.yml"], { cwd: extra_fs.getRealPathSync(cwd) }); if (workspaceManifestPath !== null && workspaceManifestPath !== void 0 && workspaceManifestPath.endsWith(".yml")) { throw new error.PnpmError("BAD_WORKSPACE_MANIFEST_NAME", 'The workspace manifest file should be named "pnpm-workspace.yaml". File found: '.concat(workspaceManifestPath)); } return workspaceManifestPath && path.dirname(workspaceManifestPath) || null; } exports.pnpmWorkspaceRoot = pnpmWorkspaceRoot; exports.pnpmWorkspaceRootSync = pnpmWorkspaceRootSync;