import { Arguments, Argv } from 'yargs'; import { initHook, cliHook, cliCleanHook, } from '../hooks'; export interface CleanArguments extends Arguments { target?: string[]; } export function cleanBuilder(argv: Argv) { return argv .version(false) .option('target', { alias: 't', string: true, array: true, required: false, }) .showHelpOnFail(true) .help( 'help', 'Show usage instructions.' ); } export function cleanHandler(argv: CleanArguments) { initHook.addAction('clean', async () => { require('./clean.handler'); await cliCleanHook.do(argv); }, { priority: 20 }); } cliHook.addFilter('clean', (argv) => { return argv.command( 'clean', 'Clean the project build', { builder: cleanBuilder, handler: cleanHandler, }, ); });