|
1 | 1 | import { NormalizedProvider, ProviderWithScope, TagProvider, Token } from './provider.js';
|
2 | 2 | import { arrayRemoveItem, ClassType, getClassName, isClass, isPlainObject, isPrototypeOfBase } from '@deepkit/core';
|
3 |
| -import { BuildContext, Injector, SetupProviderRegistry } from './injector.js'; |
| 3 | +import { BuildContext, getContainerToken, Injector, resolveToken, SetupProviderRegistry } from './injector.js'; |
4 | 4 | import {
|
5 | 5 | hasTypeInformation,
|
6 | 6 | isType,
|
7 | 7 | ReceiveType,
|
8 | 8 | reflect,
|
9 | 9 | ReflectionKind,
|
10 | 10 | reflectOrUndefined,
|
11 |
| - resolveReceiveType, stringifyType, |
| 11 | + resolveReceiveType, |
12 | 12 | Type,
|
13 | 13 | TypeClass,
|
14 | 14 | typeInfer,
|
@@ -226,8 +226,9 @@ export function findModuleForConfig(config: ClassType, modules: InjectorModule[]
|
226 | 226 |
|
227 | 227 | export type ExportType = Token | InjectorModule;
|
228 | 228 |
|
229 |
| -export function isProvided(providers: ProviderWithScope[], token: any): boolean { |
230 |
| - return providers.find(v => !(v instanceof TagProvider) ? token === (isClass(v) ? v : v.provide) : false) !== undefined; |
| 229 | + |
| 230 | +export function isProvided<T>(providers: ProviderWithScope[], token: Token<T>): boolean { |
| 231 | + return providers.some(v => getContainerToken(resolveToken(v)) === getContainerToken(token)); |
231 | 232 | }
|
232 | 233 |
|
233 | 234 | export function getScope(provider: ProviderWithScope): string {
|
@@ -342,8 +343,11 @@ export class InjectorModule<C extends { [name: string]: any } = any, IMPORT = In
|
342 | 343 | return this.exports.includes(token);
|
343 | 344 | }
|
344 | 345 |
|
345 |
| - isProvided(classType: ClassType): boolean { |
346 |
| - return isProvided(this.getProviders(), classType); |
| 346 | + isProvided<T>(token?: Token<T>, type?: ReceiveType<T>): boolean { |
| 347 | + if (!token) { |
| 348 | + token = resolveReceiveType(type); |
| 349 | + } |
| 350 | + return isProvided<T>(this.getProviders(), token); |
347 | 351 | }
|
348 | 352 |
|
349 | 353 | addProvider(...provider: (ProviderWithScope | ProviderWithScope[])[]): this {
|
|
0 commit comments