mirror of
https://github.com/nestjs/nest.git
synced 2026-02-21 23:11:44 +00:00
feature(): add typings to the provider interface
This commit is contained in:
@@ -1,26 +1,26 @@
|
||||
import { Scope } from '../scope-options.interface';
|
||||
import { Type } from '../type.interface';
|
||||
|
||||
export type Provider =
|
||||
export type Provider<T = any> =
|
||||
| Type<any>
|
||||
| ClassProvider
|
||||
| ValueProvider
|
||||
| FactoryProvider;
|
||||
| ClassProvider<T>
|
||||
| ValueProvider<T>
|
||||
| FactoryProvider<T>;
|
||||
|
||||
export interface ClassProvider {
|
||||
provide: any;
|
||||
useClass: Type<any>;
|
||||
export interface ClassProvider<T = any> {
|
||||
provide: string | symbol | Type<any>;
|
||||
useClass: Type<T>;
|
||||
scope?: Scope;
|
||||
}
|
||||
|
||||
export interface ValueProvider {
|
||||
provide: any;
|
||||
useValue: any;
|
||||
export interface ValueProvider<T = any> {
|
||||
provide: string | symbol | Type<any>;
|
||||
useValue: T;
|
||||
}
|
||||
|
||||
export interface FactoryProvider {
|
||||
provide: any;
|
||||
useFactory: (...args: any[]) => any;
|
||||
export interface FactoryProvider<T = any> {
|
||||
provide: string | symbol | Type<any>;
|
||||
useFactory: (...args: any[]) => T;
|
||||
inject?: Array<Type<any> | string | any>;
|
||||
scope?: Scope;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ import { MetadataScanner } from './metadata-scanner';
|
||||
interface ApplicationProviderWrapper {
|
||||
moduleKey: string;
|
||||
providerKey: string;
|
||||
type: string;
|
||||
type: string | symbol | Type<any>;
|
||||
}
|
||||
|
||||
export class DependenciesScanner {
|
||||
@@ -264,7 +264,7 @@ export class DependenciesScanner {
|
||||
const type = (provider as ClassProvider | ValueProvider | FactoryProvider)
|
||||
.provide;
|
||||
|
||||
if (!providersKeys.includes(type)) {
|
||||
if (!providersKeys.includes(type as string)) {
|
||||
return this.container.addProvider(provider as any, token);
|
||||
}
|
||||
const providerToken = randomStringGenerator();
|
||||
@@ -319,7 +319,7 @@ export class DependenciesScanner {
|
||||
const { providers } = modules.get(moduleKey);
|
||||
const { instance } = providers.get(providerKey);
|
||||
|
||||
applyProvidersMap[type](instance);
|
||||
applyProvidersMap[type as string](instance);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user