@mbc-cqrs-serverless/core
Version:
CQRS and event base core
33 lines (32 loc) • 1.69 kB
TypeScript
import { Type } from '@nestjs/common';
import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
import { Module } from '@nestjs/core/injector/module';
import { ModulesContainer } from '@nestjs/core/injector/modules-container';
import { IGroupRoleResolver } from '../auth/group-role-resolver.interface';
import { IDataSyncHandler, IEventFactory, IEventHandler } from '../interfaces';
export declare class ExplorerService {
private readonly modulesContainer;
private readonly logger;
constructor(modulesContainer: ModulesContainer);
explore(): {
events: Type<IEventHandler<any, any>>[];
eventFactorys: Type<IEventFactory<any>>[];
};
exploreDataSyncHandlers(commandTableName: string): {
dataSyncHandlers: Type<IDataSyncHandler<any, any>>[];
};
exploreNotificationTransports(): {
notificationTransports: Type<any>[];
};
exploreGroupRoleResolvers(): Type<IGroupRoleResolver>[];
/**
* Count how many modules register the `<tableName>_CommandEventHandler` alias
* provider. More than one indicates two CommandModule instances competing for
* the same physical table's data-sync pipeline (the alias is resolved
* non-strictly, so only one — import-order dependent — would win).
*/
countCommandEventHandlerAliases(tableName: string): number;
flatMap<T>(modules: Module[], callback: (instance: InstanceWrapper) => Type<any> | undefined): Type<T>[];
filterProvider(wrapper: InstanceWrapper, metadataKey: string, metadataValue?: string): Type<any> | undefined;
extractMetadata(instance: Record<string, any>, metadataKey: string, metadataValue?: string): Type<any>;
}