han-prev-core
Version:
Core framework for Han - A powerful Node.js framework inspired by NestJS
37 lines (36 loc) • 1.3 kB
TypeScript
import "reflect-metadata";
import { ModuleMetadata } from "../decorators";
interface Provider {
provide: string;
useClass?: any;
useValue?: any;
useFactory?: (...args: any[]) => any | Promise<any>;
inject?: string[];
scope?: "singleton" | "transient";
}
declare class Container {
private instances;
private singletons;
private processedModules;
private metadataCache;
private dependencyCache;
private asyncProviders;
private moduleMiddlewareConfigs;
private lifecycleHooks;
register<T>(token: string, factory: () => T, singleton?: boolean): void;
resolve<T>(token: string): T;
registerProvider(provider: Provider): void;
registerController<T>(ControllerClass: new (...args: any[]) => T): void;
private createInstance;
private resolveDependencies;
registerModule(moduleClass: any): void;
getModuleMetadata(moduleClass: any): ModuleMetadata | undefined;
callOnModuleInit(): Promise<void>;
callOnModuleDestroy(): Promise<void>;
resolveAsyncProviders(): Promise<void>;
configureModuleMiddleware(moduleClass: any, consumer: any): void;
getModuleMiddlewareConfigs(moduleClass: any): any;
getAllMiddlewareConfigs(): Map<any, any>;
}
declare const container: Container;
export { container };