@jbpionnier/ddd
v1.2.4
Published
Domain-Driven Design TypeScript
Downloads
19
Maintainers
Readme
ts-ddd
Utilities types for Domain-Driven Design in TypeScript
[!WARNING] Work in progress.
Installation
npm install @jbpionnier/ddd
Usage
- ICommandBus / Command / CommandHandler
- IQueryBus / Query / QueryHandler
- IEventBus / Event / EventHandler
- AggregateRoot
- DomainEvent / DomainEventStream
- Entity / ValueObject
- Repository
- EventStream / Saga
- EventStore
ICommandBus / Command / CommandHandler
import { ICommandBus, ICommandHandler, Command } from '@jbpionnier/ddd'
class MyCommand implements Command {
constructor(public readonly id: string) {}
}
@CommandHandler(MyCommand)
class MyCommandHandler implements ICommandHandler<ImportMediaCommand> {
handle(command: MyCommand): void {
console.log('Handling command', command)
}
}
// Create the command bus
const commandBus: ICommandBus = new CommandBus()
commandBus.register(new MyCommandHandler())
// Execute the command
commandBus.execute(new MyCommand('123'))