@dugongjs/nestjs
Version:
66 lines (65 loc) • 2.86 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var EventSourcingModule_1;
import { IConsumedMessageRepository, IDomainEventRepository, IMessageProducer, IOutboundMessageMapper, ISnapshotRepository, ITransactionManager } from "@dugongjs/core";
import { Module } from "@nestjs/common";
import { EventSourcingService } from "./event-sourcing.service.js";
let EventSourcingModule = EventSourcingModule_1 = class EventSourcingModule {
static register(options) {
const imports = options?.module?.imports ?? [];
const providers = options?.module?.providers ?? [];
if (options?.transactionManager?.transactionManager) {
providers.push({
provide: ITransactionManager,
useClass: options.transactionManager.transactionManager
});
}
if (options?.repository?.domainEventRepository) {
providers.push({
provide: IDomainEventRepository,
useClass: options.repository.domainEventRepository
});
}
if (options?.repository?.snapshotRepository) {
providers.push({
provide: ISnapshotRepository,
useClass: options.repository.snapshotRepository
});
}
if (options?.repository?.consumedMessageRepository) {
providers.push({
provide: IConsumedMessageRepository,
useClass: options?.repository.consumedMessageRepository
});
}
if (options?.messageBroker?.messageProducer) {
providers.push({
provide: IMessageProducer,
useClass: options.messageBroker.messageProducer
});
}
if (options?.messageBroker?.outboundMessageMapper) {
providers.push({
provide: IOutboundMessageMapper,
useClass: options.messageBroker.outboundMessageMapper
});
}
return {
global: options?.global,
module: EventSourcingModule_1,
imports,
providers
};
}
};
EventSourcingModule = EventSourcingModule_1 = __decorate([
Module({
providers: [EventSourcingService],
exports: [EventSourcingService]
})
], EventSourcingModule);
export { EventSourcingModule };