import { Arguments, Argv } from 'yargs'; import { initHook, cliHook, cliStartHook, } from '../hooks'; export interface StartArguments extends Arguments { target?: string[]; optimize: boolean; } export function startBuilder(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 startHandler(argv: StartArguments) { initHook.addAction('start', async () => { require('./start.handler'); await cliStartHook.do(argv); }, { priority: 30 }); } cliHook.addFilter('start', (argv) => { return argv.command( 'start', 'Start the server', { builder: startBuilder, handler: startHandler, }, ); });