# Provider Class
Module | import { Provider } from "@tsed/di" |
---|---|
Source | /packages/di/src/class/Provider.ts |
# Overview
class Provider<T = any> implements IProvider<T> {
type: ProviderType | any;
injectable: boolean;
instance: T;
deps: TokenProvider[];
imports: any[];
useFactory: Function;
useAsyncFactory: Function;
useValue: any;
protected _provide: TokenProvider;
protected _useClass: Type<T>;
protected _instance: T;
<span class="token punctuation">[</span>key<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">]</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>
<span class="token keyword">constructor</span><span class="token punctuation">(</span>token<span class="token punctuation">:</span> <a href="/api/di/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">)</span><span class="token punctuation">;</span>
get <span class="token function">token</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>
get <span class="token function">provide</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/di/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">;</span>
set <span class="token function">provide</span><span class="token punctuation">(</span>value<span class="token punctuation">:</span> <a href="/api/di/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">)</span><span class="token punctuation">;</span>
get <span class="token function">useClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/core/interfaces/Type.html"><span class="token">Type</span></a><T><span class="token punctuation">;</span>
/**
* Create a new store if the given value is a <span class="token keyword">class</span>. Otherwise the value is ignored.
* @param value
*/
set <span class="token function">useClass</span><span class="token punctuation">(</span>value<span class="token punctuation">:</span> <a href="/api/core/interfaces/Type.html"><span class="token">Type</span></a><T><span class="token punctuation">)</span><span class="token punctuation">;</span>
get <span class="token function">className</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>
get <span class="token function">name</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>
get <span class="token function">store</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/core/class/Store.html"><span class="token">Store</span></a><span class="token punctuation">;</span>
/**
* <a href="/api/common/mvc/decorators/method/Get.html"><span class="token">Get</span></a> the scope of the provider.
*
* <span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token punctuation">:</span> tip Note
* Async provider is always a SINGLETON
* <span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token punctuation">:</span>
*
* @returns <span class="token punctuation">{</span><span class="token keyword">boolean</span><span class="token punctuation">}</span>
*/
get <span class="token function">scope</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/di/interfaces/ProviderScope.html"><span class="token">ProviderScope</span></a><span class="token punctuation">;</span>
/**
* Change the scope value of the provider.
* @param scope
*/
set <span class="token function">scope</span><span class="token punctuation">(</span>scope<span class="token punctuation">:</span> <a href="/api/di/interfaces/ProviderScope.html"><span class="token">ProviderScope</span></a><span class="token punctuation">)</span><span class="token punctuation">;</span>
get <span class="token function">configuration</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Partial<TsED.<a href="/api/di/decorators/Configuration.html"><span class="token">Configuration</span></a>><span class="token punctuation">;</span>
set <span class="token function">configuration</span><span class="token punctuation">(</span>configuration<span class="token punctuation">:</span> Partial<TsED.<a href="/api/di/decorators/Configuration.html"><span class="token">Configuration</span></a>><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">get</span><span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>
<span class="token function">isAsync</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
<span class="token function">clone</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Provider<<span class="token keyword">any</span>><span class="token punctuation">;</span>
<span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>
}
# Members
type: ProviderType | any;
injectable: boolean;
instance: T;
deps: TokenProvider[];
imports: any[];
useFactory: Function;
useAsyncFactory: Function;
useValue: any;
protected _provide: TokenProvider;
protected _useClass: Type<T>;
protected _instance: T;
[key: string]: any;
get token(): any;
get provide(): TokenProvider;
set provide(value: TokenProvider);
get useClass(): Type<T>;
set useClass(value: Type<T>);
Create a new store if the given value is a class. Otherwise the value is ignored.
get className(): string;
get name(): string;
get store(): Store;
get scope(): ProviderScope;
Get the scope of the provider.
Note
Async provider is always a SINGLETON
:::
set scope(scope: ProviderScope);
Change the scope value of the provider.
get configuration(): Partial<TsED.Configuration>;
set configuration(configuration: Partial<TsED.Configuration>);
get(key: string): any;
isAsync(): boolean;
clone(): Provider<any>;
toString(): string;
- Session & cookies
- Passport.js
- TypeORM
- Mongoose
- GraphQL
- Socket.io
- Swagger
- AJV
- Multer
- Serve static files
- Templating
- Throw HTTP Exceptions
- Customize 404
- AWS
- Jest
- Seq
- Controllers
- Providers
- Model
- Converters
- Middlewares
- Pipes
- Interceptors
- Authentication
- Hooks
- Injection scopes
- Custom providers
- Custom endpoint decorator
- Testing