cli: added getOutputsForRole utility
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
@@ -16,17 +16,9 @@
|
||||
|
||||
import chalk from 'chalk';
|
||||
import { relative as relativePath } from 'path';
|
||||
import { buildPackages, Output } from '../../lib/builder';
|
||||
import { buildPackages, getOutputsForRole } from '../../lib/builder';
|
||||
import { PackageGraph } from '../../lib/monorepo';
|
||||
import { paths } from '../../lib/paths';
|
||||
import { getRoleInfo } from '../../lib/role';
|
||||
|
||||
const outputMap = {
|
||||
esm: Output.esm,
|
||||
cjs: Output.cjs,
|
||||
types: Output.types,
|
||||
bundle: undefined,
|
||||
};
|
||||
|
||||
export async function command(): Promise<void> {
|
||||
const packages = await PackageGraph.listTargetPackages();
|
||||
@@ -38,11 +30,8 @@ export async function command(): Promise<void> {
|
||||
return [];
|
||||
}
|
||||
|
||||
const roleInfo = getRoleInfo(role);
|
||||
const outputs = roleInfo.output
|
||||
.map(output => outputMap[output])
|
||||
.filter((x): x is Output => Boolean(x));
|
||||
if (outputs.length === 0) {
|
||||
const outputs = getOutputsForRole(role);
|
||||
if (outputs.size === 0) {
|
||||
console.warn(`Ignored ${pkg.packageJson.name} because it has no output`);
|
||||
return [];
|
||||
}
|
||||
@@ -63,7 +52,7 @@ export async function command(): Promise<void> {
|
||||
|
||||
return {
|
||||
targetDir: pkg.dir,
|
||||
outputs: new Set(outputs),
|
||||
outputs,
|
||||
logPrefix: `${chalk.cyan(relativePath(paths.targetRoot, pkg.dir))}: `,
|
||||
// TODO(Rugvip): Use commander to parse the script and grab these instead
|
||||
minify: buildScript.includes('--minify'),
|
||||
|
||||
@@ -14,6 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export { buildPackage, buildPackages } from './packager';
|
||||
export { buildPackage, buildPackages, getOutputsForRole } from './packager';
|
||||
export { Output } from './types';
|
||||
export type { BuildOptions } from './types';
|
||||
|
||||
@@ -22,6 +22,7 @@ import { paths } from '../paths';
|
||||
import { makeRollupConfigs } from './config';
|
||||
import { BuildOptions, Output } from './types';
|
||||
import { buildTypeDefinitions } from './buildTypeDefinitions';
|
||||
import { getRoleInfo } from '../role';
|
||||
|
||||
export function formatErrorMessage(error: any) {
|
||||
let msg = '';
|
||||
@@ -141,3 +142,21 @@ export const buildPackages = async (
|
||||
|
||||
await Promise.all(buildTasks);
|
||||
};
|
||||
|
||||
export function getOutputsForRole(role: string): Set<Output> {
|
||||
const outputs = new Set<Output>();
|
||||
|
||||
for (const output of getRoleInfo(role).output) {
|
||||
if (output === 'cjs') {
|
||||
outputs.add(Output.cjs);
|
||||
}
|
||||
if (output === 'esm') {
|
||||
outputs.add(Output.esm);
|
||||
}
|
||||
if (output === 'types') {
|
||||
outputs.add(Output.types);
|
||||
}
|
||||
}
|
||||
|
||||
return outputs;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user