feat: support workspaces

This commit is contained in:
2019-04-05 15:49:59 -07:00
parent b93defbf4d
commit 9aebeb31a6
4 changed files with 42 additions and 2 deletions

View File

@@ -2,6 +2,7 @@ const path = require('path');
const fs = require('fs');
const os = require('os');
const JoyCon = require('joycon');
const globParent = require('glob-parent');
exports.getRootPath = () => process.cwd();
@@ -38,6 +39,27 @@ exports.getPackageInfo = () => {
return { name, workspaces };
};
exports.getPackageWorkspaces = () => {
const { workspaces } = exports.getPackageInfo();
if (!workspaces) return [];
return workspaces.reduce((acc, glob) => {
const parent = globParent(glob);
const packages = fs
.readdirSync(parent)
.map(package => {
const packageJson = path.join(parent, package, 'package.json');
if (!exports.canAccessFile(packageJson)) return false;
return {
name: package,
package: packageJson,
};
})
.filter(Boolean);
return acc.concat(packages);
}, []);
};
exports.getConfig = (overrides = {}) => {
const joycon = new JoyCon();
const defaults = {