workspace-projects
Version:
A simple utility to get the workspace project list
62 lines (57 loc) • 1.97 kB
JavaScript
;
var lernaWorkspaceInfo = require('@node-kit/lerna-workspace-info');
var pnpmWorkspaceInfo = require('@node-kit/pnpm-workspace-info');
var yarnWorkspaceInfo = require('@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.pnpmWorkspaceInfo(cwd)) || (yield yarnWorkspaceInfo.yarnWorkspaceInfo(cwd)) || (yield lernaWorkspaceInfo.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 = pnpmWorkspaceInfo.pnpmWorkspaceInfoSync(cwd) || yarnWorkspaceInfo.yarnWorkspaceInfoSync(cwd) || lernaWorkspaceInfo.lernaWorkspaceInfoSync(cwd) || null;
if (info) {
return Object.keys(info).map(function(project) {
return info[project].path;
});
}
return null;
}
exports.workspaceProjects = workspaceProjects;
exports.workspaceProjectsSync = workspaceProjectsSync;