@dugongjs/nestjs
Version:
24 lines (23 loc) • 1.33 kB
TypeScript
import { IConsumedMessageRepository, IDomainEventRepository, IInboundMessageMapper, IMessageConsumer, IMessageProducer, IOutboundMessageMapper, ISnapshotRepository, ITransactionManager, type Constructor } from "@dugongjs/core";
import type { ModuleMetadata } from "@nestjs/common";
import type { ILoggerFactory } from "../logger/i-logger-factory.js";
export type DugongAdapters = {
imports?: ModuleMetadata["imports"];
providers?: ModuleMetadata["providers"];
loggerFactory?: Constructor<ILoggerFactory>;
transactionManager?: Constructor<ITransactionManager>;
domainEventRepository?: Constructor<IDomainEventRepository>;
snapshotRepository?: Constructor<ISnapshotRepository>;
consumedMessageRepository?: Constructor<IConsumedMessageRepository>;
messageConsumer?: Constructor<IMessageConsumer<any>>;
inboundMessageMapper?: Constructor<IInboundMessageMapper<any>>;
messageProducer?: Constructor<IMessageProducer<any>>;
outboundMessageMapper?: Constructor<IOutboundMessageMapper<any>>;
};
export type DugongAdapterFactory = () => DugongAdapters;
export declare class DugongAdapterBuilder {
private adapters;
register(adapter: DugongAdapters | DugongAdapterFactory): this;
registerMany(...adapters: (DugongAdapters | DugongAdapterFactory)[]): this;
build(): DugongAdapters;
}