import type { IAppError } from "../CallbackArg"; import MessageBus from "../MessageBus"; import type IMiddleware from "../Middleware"; import type ICommand from "./Command"; import type { CommandResponse } from "./CommandHandlerResolver"; export default class CommandBus extends MessageBus { constructor( ...middlewares: IMiddleware[] ) { super(...middlewares); } public async handle(command: ICommand): Promise { return await this.middlewareChain(command); } }