@roots/bud-build
Version:
bud.js core module
11 lines (10 loc) • 488 B
JavaScript
import { cpus } from 'node:os';
export const parallelism = async ({ build, hooks, root, }) => {
const concurrency = 100;
const cores = Math.max(cpus().length, 1);
const available = cores * concurrency;
const compilations = Math.max(Object.keys(root.children ?? []).length, 1);
const parallelism = Math.max(Math.floor(available / compilations), 1);
build.logger.info(`parallelism set to`, parallelism);
return hooks.filter(`build.parallelism`, parallelism);
};