feat: support workspaces
This commit is contained in:
22
src/utils.js
22
src/utils.js
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user