1 | import { Controller } from '@nestjs/common/interfaces/controllers/controller.interface';
|
2 | import { Injectable } from '@nestjs/common/interfaces/injectable.interface';
|
3 | import { Type } from '@nestjs/common/interfaces/type.interface';
|
4 | import { ContextId, InstancePerContext, InstanceWrapper, PropertyMetadata } from './instance-wrapper';
|
5 | import { Module } from './module';
|
6 |
|
7 |
|
8 |
|
9 | export declare type InjectorDependency = Type<any> | Function | string | symbol;
|
10 |
|
11 |
|
12 |
|
13 | export interface PropertyDependency {
|
14 | key: string;
|
15 | name: InjectorDependency;
|
16 | isOptional?: boolean;
|
17 | instance?: any;
|
18 | }
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | export interface InjectorDependencyContext {
|
24 | |
25 |
|
26 |
|
27 | key?: string | symbol;
|
28 | |
29 |
|
30 |
|
31 | name?: string | symbol;
|
32 | |
33 |
|
34 |
|
35 |
|
36 | index?: number;
|
37 | |
38 |
|
39 |
|
40 | dependencies?: InjectorDependency[];
|
41 | }
|
42 | export declare class Injector {
|
43 | loadMiddleware(wrapper: InstanceWrapper, collection: Map<string, InstanceWrapper>, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper): Promise<void>;
|
44 | loadController(wrapper: InstanceWrapper<Controller>, module: Module, contextId?: ContextId): Promise<void>;
|
45 | loadInjectable(wrapper: InstanceWrapper<Controller>, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper): Promise<void>;
|
46 | loadProvider(wrapper: InstanceWrapper<Injectable>, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper): Promise<void>;
|
47 | loadPrototype<T>({ name }: InstanceWrapper<T>, collection: Map<string, InstanceWrapper<T>>, contextId?: ContextId): void;
|
48 | applyDoneHook<T>(wrapper: InstancePerContext<T>): () => void;
|
49 | loadInstance<T>(wrapper: InstanceWrapper<T>, collection: Map<string, InstanceWrapper>, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper): Promise<void>;
|
50 | resolveConstructorParams<T>(wrapper: InstanceWrapper<T>, module: Module, inject: InjectorDependency[], callback: (args: unknown[]) => void, contextId?: ContextId, inquirer?: InstanceWrapper, parentInquirer?: InstanceWrapper): Promise<void>;
|
51 | reflectConstructorParams<T>(type: Type<T>): any[];
|
52 | reflectOptionalParams<T>(type: Type<T>): any[];
|
53 | reflectSelfParams<T>(type: Type<T>): any[];
|
54 | resolveSingleParam<T>(wrapper: InstanceWrapper<T>, param: Type<any> | string | symbol | any, dependencyContext: InjectorDependencyContext, module: Module, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number): Promise<InstanceWrapper<any>>;
|
55 | resolveParamToken<T>(wrapper: InstanceWrapper<T>, param: Type<any> | string | symbol | any): any;
|
56 | resolveComponentInstance<T>(module: Module, name: any, dependencyContext: InjectorDependencyContext, wrapper: InstanceWrapper<T>, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number): Promise<InstanceWrapper>;
|
57 | resolveComponentHost<T>(module: Module, instanceWrapper: InstanceWrapper<T>, contextId?: ContextId, inquirer?: InstanceWrapper): Promise<InstanceWrapper>;
|
58 | lookupComponent<T = any>(providers: Map<string | symbol, InstanceWrapper>, module: Module, dependencyContext: InjectorDependencyContext, wrapper: InstanceWrapper<T>, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number): Promise<InstanceWrapper<T>>;
|
59 | lookupComponentInParentModules<T = any>(dependencyContext: InjectorDependencyContext, module: Module, wrapper: InstanceWrapper<T>, contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number): Promise<any>;
|
60 | lookupComponentInImports(module: Module, name: any, wrapper: InstanceWrapper, moduleRegistry?: any[], contextId?: ContextId, inquirer?: InstanceWrapper, keyOrIndex?: string | number, isTraversing?: boolean): Promise<any>;
|
61 | resolveProperties<T>(wrapper: InstanceWrapper<T>, module: Module, inject?: InjectorDependency[], contextId?: ContextId, inquirer?: InstanceWrapper, parentInquirer?: InstanceWrapper): Promise<PropertyDependency[]>;
|
62 | reflectProperties<T>(type: Type<T>): PropertyDependency[];
|
63 | applyProperties<T = any>(instance: T, properties: PropertyDependency[]): void;
|
64 | instantiateClass<T = any>(instances: any[], wrapper: InstanceWrapper, targetMetatype: InstanceWrapper, contextId?: ContextId, inquirer?: InstanceWrapper): Promise<T>;
|
65 | loadPerContext<T = any>(instance: T, module: Module, collection: Map<string, InstanceWrapper>, ctx: ContextId): Promise<T>;
|
66 | loadEnhancersPerContext(wrapper: InstanceWrapper, ctx: ContextId, inquirer?: InstanceWrapper): Promise<void>;
|
67 | loadCtorMetadata(metadata: InstanceWrapper<any>[], contextId: ContextId, inquirer?: InstanceWrapper, parentInquirer?: InstanceWrapper): Promise<any[]>;
|
68 | loadPropertiesMetadata(metadata: PropertyMetadata[], contextId: ContextId, inquirer?: InstanceWrapper): Promise<PropertyDependency[]>;
|
69 | private getInquirerId;
|
70 | private resolveScopedComponentHost;
|
71 | private isInquirerRequest;
|
72 | private isInquirer;
|
73 | private addDependencyMetadata;
|
74 | }
|