xlit command and query mediator
npm install @xlit/mediatorCommand and query mediator
``sh`
npm i @xlit/mediator
Define command handler with decorator.
`typescript
import { commandHandler } from '@xlit/mediator';
class FooCommand {
kind = 'FooCommand';
}
@commandHandler('FooCommand')
class FooCommandHandler {
handle(cmd: FooCommand): Promise
// do something
}
}
`
Define query handler with decorator.
`typescript
import { queryHandler } from '@xlit/mediator';
class BarQuery {
kind = 'BarQuery';
}
type BarDto = string;
@queryHandler('BarQuery')
class BarQueryHandler {
handle(query: BarQuery): Promise
// do something
return Promise.resolve('barbar');
}
}
`
Send command and query
`ts
import { FooCommand } from './FooCommand.js';
import { BarQuery } from './BarQuery.js';
const mediator = Mediator.instance();
await mediator.send(new FooCommand()); // send command
const result = await mediator.send(new BarQuery()); // send query
``