import { Arguments, Argv } from 'yargs'; import { initHook, cliHook, cliBuildHook, } from '../hooks'; export interface BuildArguments extends Arguments { target?: string[]; optimize: boolean; } export function buildBuilder(argv: Argv) { return argv .version(false) .option('target', { alias: 't', string: true, array: true, required: false, }) .option('optimize', { boolean: true, default: false, }) .showHelpOnFail(true) .help( 'help', 'Show usage instructions.' ); } export function buildHandler(argv: BuildArguments) { initHook.addAction('analyze', async () => { require('./build.handler'); await cliBuildHook.do(argv); }, { priority: 30 }); } cliHook.addFilter('build', (argv) => { return argv.command( 'build', 'Build your bundles', { builder: buildBuilder, handler: buildHandler, }, ); });