UNPKG

@nestjs/core

Version:

Nest - modern, fast, powerful node.js web framework (@core)

66 lines (65 loc) 3.07 kB
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; }; }; }