import { createError, IPackageBuilderCommandHandler, IPackageBuilderCommandHandlerHooks, MrBuildSpecBuilderCommandHandlerArgs, MrPackageBuilderCommandHandlerArgs, MrPackageBuilderCommandResults, } from '@cirrusct/mr-core'; import { AsyncParallelHook } from 'tapable'; import { Build } from './handlers/Build'; import { Clean } from './handlers/Clean'; import { Start } from './handlers/Start'; export const createPackageBuilder = ( commandName: string, args: MrPackageBuilderCommandHandlerArgs ): IPackageBuilderCommandHandler => { const handlers = { build: Build, clean: Clean, start: Start, }; if (!handlers[commandName]) { throw createError(`createPackageBuilder failed: No handler for builder command '${commandName}'`); } return new handlers[commandName](args); };