workspace-projects
Version:
A simple utility to get the workspace project list
59 lines (55 loc) • 1.87 kB
JavaScript
import { lernaWorkspaceInfoSync, lernaWorkspaceInfo } from '@node-kit/lerna-workspace-info';
import { pnpmWorkspaceInfoSync, pnpmWorkspaceInfo } from '@node-kit/pnpm-workspace-info';
import { yarnWorkspaceInfoSync, yarnWorkspaceInfo } from '@node-kit/yarn-workspace-info';
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);
});
};
}
function workspaceProjects() {
return _workspaceProjects.apply(this, arguments);
}
function _workspaceProjects() {
_workspaceProjects = _asyncToGenerator(function* () {
var cwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd();
var info = (yield pnpmWorkspaceInfo(cwd)) || (yield yarnWorkspaceInfo(cwd)) || (yield lernaWorkspaceInfo(cwd)) || null;
if (info) {
return Object.keys(info).map(function(project) {
return info[project].path;
});
}
return null;
});
return _workspaceProjects.apply(this, arguments);
}
function workspaceProjectsSync() {
var cwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd();
var info = pnpmWorkspaceInfoSync(cwd) || yarnWorkspaceInfoSync(cwd) || lernaWorkspaceInfoSync(cwd) || null;
if (info) {
return Object.keys(info).map(function(project) {
return info[project].path;
});
}
return null;
}
export { workspaceProjects, workspaceProjectsSync };