1.0.0 • Published 4 years ago

@brunonunes/nestjs-cqrs-nats-jetstream v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

Installation

$ yarn install @brunonunes/nestjs-cqrs-nats-jetstream

Description

This module enable NestJS CQRS to work with NATS JetStream.

Setup root app module

import { Module } from  '@nestjs/common';
import { JetstreamModule } from  '@brunonunes/nestjs-cqrs-nats-jetstream';

@Module({
	imports: [
		JetstreamModule.register()
	]
})

export  class  AppModule {}

Setup module

Setup feature module

import { Module } from  '@nestjs/common';
import { 
  CommandBus, 
  CqrsModule, 
  EventBus 
} from  '@nestjs/cqrs';
import { 
  JetstreamModule,
  Jetstream, 
  JetstreamSubscriptionType 
} from  '@brunonunes/nestjs-cqrs-nats-jetstream';
import {
  UserCommandHandlers,
  UserCreatedEvent,
  UserEventHandlers,
  UserQueryHandlers,
} from  '../cqrs';

@Module({
  imports: [
    CqrsModule,
    JetstreamModule.registerFeature({
      featureStreamName: 'USER',
      subscriptions: [
        {
          name: "con-user-service"
        },
      ],
      eventHandlers: {
        UserLoggedInEvent: (data) => new UserLoggedInEvent(data),
        UserRegisteredEvent: (data) => new UserRegisteredEvent(data),
        EmailVerifiedEvent: (data) => new EmailVerifiedEvent(data),
      },
    }),
  ],
  providers: [
    ...UserQueryHandlers,
    ...UserCommandHandlers,
    ...UserEventHandlers,
  ],
})

export  class  UserModule {}

License

This project is MIT licensed.

1.0.0

4 years ago