1.0.11 • Published 1 year ago

bc-event-store v1.0.11

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
1 year ago

Installation

$ yarn add bc-event-store

Description

This module aims to bridge the gap between NestJs and popular event store broker Event Store.

Usage

Setup root app module

import { EventStoreModule } from 'bc-event-store';

@Module({
  imports: [
    CqrsModule,
    EventStoreModule.register({
      connectionOptions: {
        endpoint: 'esdb://localhost:2113',
      },
    }),
  ]
})
export class AppModule {}

Setup feature module

import { CqrsModule } from '@nestjs/cqrs';
import { Module } from '@nestjs/common';
import { BuyerCreatedEvent } from './events/impl/buyer-created.event';
import { BuyerUpdatedEvent } from './events/impl/buyer-updated.event';
import { EventStoreModule } from 'bc-event-store';

@Module({
  imports: [
    CqrsModule,
    EventStoreModule.registerFeature({
      featureStreamName: '$et-buyers',
      subscriptions: [
         {
          type: EventStoreSubscriptionType.CatchUp,
          stream: '$et-buyers',
          resolveLinkTos: true,
        },
      ],
      eventHandlers: {
        BuyerCreatedEvent: (data) => new BuyerCreatedEvent(data.buyerDto),
        BuyerUpdatedEvent: (data) =>
          new BuyerUpdatedEvent(data.buyerId, data.buyerDto),
      },
    }),
  ],