@jbpionnier/ddd
TypeScript icon, indicating that this package has built-in type declarations

1.2.4 • Public • Published

ts-ddd

npm version Build Status npm

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'))

Package Sidebar

Install

npm i @jbpionnier/ddd

Weekly Downloads

21

Version

1.2.4

License

MIT

Unpacked Size

51 kB

Total Files

126

Last publish

Collaborators

  • jbpionnier