@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
49 lines • 3.37 kB
TypeScript
import { ApplicationConfig } from './application-config';
import { EnhancerSubtype } from '../helpers';
import { InstanceWrapper, Module, ContainerIoC } from '../core';
import { MetadataScanner } from './metadata-scanner';
import { ClassProvider, DynamicModuleInterface, ExistingProvider, FactoryProvider, ForwardReferenceInterface, Type, ValueProvider } from '../contracts';
import { ControllerType, InjectableType, ProviderType } from '../types';
import { GraphInspector } from '../inspector';
export declare class DependenciesScanner {
private readonly container;
private readonly metadataScanner;
private readonly graphInspector;
private readonly applicationConfig;
private readonly applicationProvidersApplyMap;
constructor(container: ContainerIoC, metadataScanner: MetadataScanner, graphInspector: GraphInspector, applicationConfig?: ApplicationConfig);
scan(module: Type<any>): Promise<void>;
scanForModules(moduleDefinition: ForwardReferenceInterface | Type<unknown> | DynamicModuleInterface | Promise<DynamicModuleInterface>, scope?: Type<unknown>[], ctxRegistry?: (ForwardReferenceInterface | DynamicModuleInterface | Type<unknown>)[]): Promise<Module[]>;
insertModule(module: any, scope: Type<unknown>[]): Promise<Module | undefined>;
scanModulesForDependencies(modules?: Map<string, Module>): Promise<void>;
reflectImports(module: Type<unknown>, token: string, context: string): Promise<void>;
reflectProviders(module: Type<any>, token: string): void;
reflectControllers(module: Type<any>, token: string): void;
reflectDynamicMetadata(obj: Type<InjectableType>, token: string): void;
reflectExports(module: Type<unknown>, token: string): void;
reflectInjectables(component: Type<InjectableType>, token: string, metadataKey: string): void;
reflectParamInjectables(component: Type<InjectableType>, token: string, metadataKey: string): void;
reflectKeyMetadata(component: Type<InjectableType>, key: string, method: string): any;
calculateModulesDistance(): Promise<void>;
insertImport(related: any, token: string, context: string): Promise<void>;
isCustomProvider(provider: ProviderType): provider is ClassProvider | ValueProvider | FactoryProvider | ExistingProvider;
insertProvider(provider: ProviderType, token: string): string | symbol | Function;
insertInjectable(injectable: Type<InjectableType> | Object, token: string, host: Type<InjectableType>, subtype: EnhancerSubtype, methodKey?: string): InstanceWrapper<any>;
insertExportedProvider(exportedProvider: Type<InjectableType>, token: string): void;
insertController(controller: Type<ControllerType>, token: string): void;
reflectMetadata(metaType: Type<any>, metadataKey: string): any;
registerCoreModule(): Promise<void>;
addScopedEnhancersMetadata(): void;
applyApplicationProviders(): void;
getApplyProvidersMap(): {
[type: string]: Function;
};
getApplyRequestProvidersMap(): {
[type: string]: Function;
};
isDynamicModule(module: Type<any> | DynamicModuleInterface): module is DynamicModuleInterface;
isForwardReference(module: Type<any> | DynamicModuleInterface | ForwardReferenceInterface): module is ForwardReferenceInterface;
private static flatten;
private static isRequestOrTransient;
}
//# sourceMappingURL=scanner.d.ts.map