@nestjs/core
Version:
Nest - modern, fast, powerful node.js web framework (@core)
66 lines (65 loc) • 3.07 kB
TypeScript
import { InstanceWrapper, NestContainer } from './container';
import { Injectable, Controller, NestModule } from '@nestjs/common/interfaces';
import { NestModuleMetatype } from '@nestjs/common/interfaces/modules/module-metatype.interface';
import { Metatype } from '@nestjs/common/interfaces/metatype.interface';
export interface CustomComponent {
provide: any;
name: string;
}
export declare type OpaqueToken = string | symbol | object | Metatype<any>;
export declare type CustomClass = CustomComponent & {
useClass: Metatype<any>;
};
export declare type CustomFactory = CustomComponent & {
useFactory: (...args) => any;
inject?: Metatype<any>[];
};
export declare type CustomValue = CustomComponent & {
useValue: any;
};
export declare type ComponentMetatype = Metatype<Injectable> | CustomFactory | CustomValue | CustomClass;
export declare class Module {
private _metatype;
private _scope;
private _relatedModules;
private _components;
private _injectables;
private _routes;
private _exports;
constructor(_metatype: NestModuleMetatype, _scope: NestModuleMetatype[], container: NestContainer);
readonly scope: NestModuleMetatype[];
readonly relatedModules: Set<Module>;
readonly components: Map<string, InstanceWrapper<Injectable>>;
readonly injectables: Map<string, InstanceWrapper<Injectable>>;
readonly routes: Map<string, InstanceWrapper<Controller>>;
readonly exports: Set<string>;
readonly instance: NestModule;
readonly metatype: NestModuleMetatype;
addCoreInjectables(container: NestContainer): void;
addModuleRef(): void;
addModuleAsComponent(): void;
addReflector(): void;
addExternalContextCreator(container: NestContainer): void;
addModulesContainer(container: NestContainer): void;
addInjectable(injectable: Metatype<Injectable>): void;
addComponent(component: ComponentMetatype): void;
isCustomProvider(component: ComponentMetatype): component is CustomClass | CustomFactory | CustomValue;
addCustomProvider(component: CustomFactory | CustomValue | CustomClass, collection: Map<string, any>): void;
isCustomClass(component: any): component is CustomClass;
isCustomValue(component: any): component is CustomValue;
isCustomFactory(component: any): component is CustomFactory;
addCustomClass(component: CustomClass, collection: Map<string, any>): void;
addCustomValue(component: CustomValue, collection: Map<string, any>): void;
addCustomFactory(component: CustomFactory, collection: Map<string, any>): void;
addExportedComponent(exportedComponent: ComponentMetatype): Set<string>;
addCustomExportedComponent(exportedComponent: CustomFactory | CustomValue | CustomClass): Set<string>;
addRoute(route: Metatype<Controller>): void;
addRelatedModule(relatedModule: any): void;
replace(toReplace: any, options: any): void;
createModuleRefMetatype(components: any): {
new (): {
readonly components: any;
get<T>(type: OpaqueToken): T;
};
};
}