# Class Provider
ClassModule | import { Provider } from "@tsed/di" |
---|---|
Source | /packages/di/src/types/common/domain/Provider.ts |
# Overview
class Provider<T = any> implements ProviderOpts<T> {
type<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a> | <a href="/api/di/types/common/domain/ProviderType.html"><span class="token">ProviderType</span></a><span class="token punctuation">;</span>
deps<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
imports<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
alias?<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>
useFactory<span class="token punctuation">:</span> Function<span class="token punctuation">;</span>
useAsyncFactory<span class="token punctuation">:</span> Function<span class="token punctuation">;</span>
useValue<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>
hooks?<span class="token punctuation">:</span> Record<<span class="token keyword">string</span><span class="token punctuation">,</span> <a href="/api/di/types/common/domain/ProviderHookCallback.html"><span class="token">ProviderHookCallback</span></a><T>><span class="token punctuation">;</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 keyword">constructor</span><span class="token punctuation">(</span>token<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">,</span> options?<span class="token punctuation">:</span> <a href="/api/specs/schema/types/decorators/operations/Partial.html"><span class="token">Partial</span></a><Provider><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/types/common/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/types/common/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/types/domain/Type.html"><span class="token">Type</span></a><T><span class="token punctuation">;</span>
set <span class="token function">useClass</span><span class="token punctuation">(</span>value<span class="token punctuation">:</span> <a href="/api/core/types/domain/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/types/domain/Store.html"><span class="token">Store</span></a><span class="token punctuation">;</span>
get <span class="token function">path</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>
set <span class="token function">path</span><span class="token punctuation">(</span>path<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">)</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/types/common/domain/ProviderScope.html"><span class="token">ProviderScope</span></a><span class="token punctuation">;</span>
set <span class="token function">scope</span><span class="token punctuation">(</span>scope<span class="token punctuation">:</span> <a href="/api/di/types/common/domain/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> <a href="/api/specs/schema/types/decorators/operations/Partial.html"><span class="token">Partial</span></a><TsED.<a href="/api/di/types/common/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> <a href="/api/specs/schema/types/decorators/operations/Partial.html"><span class="token">Partial</span></a><TsED.<a href="/api/di/types/common/decorators/Configuration.html"><span class="token">Configuration</span></a>><span class="token punctuation">)</span><span class="token punctuation">;</span>
get <span class="token function">children</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">[</span><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 punctuation">;</span>
<span class="token function">hasChildren</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">hasParent</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">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: TokenProvider | ProviderType;
Token group provider to retrieve all provider from the same type
deps: TokenProvider[];
imports: any[];
alias?: string;
useFactory: Function;
useAsyncFactory: Function;
useValue: any;
hooks?: Record<string, ProviderHookCallback<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 path(): string;
set path(path: string);
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 children(): TokenProvider[];
get(key: string): any;
isAsync(): boolean;
clone(): Provider;
hasChildren(): boolean;
hasParent(): boolean;
toString(): string;