tools/__tasks__/compile/javascript/webpack-atoms.mjs (25 lines of code) (raw):
import { Observable } from 'rxjs';
import webpack from 'webpack';
import chalk from 'chalk';
import config from '../../../../webpack.config.atoms.js';
import reporter from '../../../webpack-progress-reporter.mjs';
/** @type {import('listr2').ListrTask} */
const task = {
title: 'Create Webpack bundles for atoms',
task: () =>
new Observable((observer) => {
config.plugins = [reporter(observer), ...config.plugins];
const bundler = webpack(config);
bundler.run((err, stats) => {
if (err) {
throw new Error(chalk.red(err));
}
const info = stats.toJson();
if (stats.hasErrors()) {
throw new Error(chalk.red(info.errors));
}
observer.complete();
});
}),
};
export default task;