UNPKG

@mbc-cqrs-serverless/core

Version:
33 lines (32 loc) 1.69 kB
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>; }