(provider: Provider, token: string)
| 451 | } |
| 452 | |
| 453 | public insertProvider(provider: Provider, token: string) { |
| 454 | const isCustomProvider = this.isCustomProvider(provider); |
| 455 | if (!isCustomProvider) { |
| 456 | return this.container.addProvider(provider, token); |
| 457 | } |
| 458 | const applyProvidersMap = this.getApplyProvidersMap(); |
| 459 | const providersKeys = Object.keys(applyProvidersMap); |
| 460 | const type = provider.provide; |
| 461 | |
| 462 | if (!providersKeys.includes(type as string)) { |
| 463 | return this.container.addProvider(provider as any, token); |
| 464 | } |
| 465 | const uuid = UuidFactory.get(type.toString()); |
| 466 | const providerToken = `${type as string} (UUID: ${uuid})`; |
| 467 | |
| 468 | let scope = (provider as ClassProvider | FactoryProvider).scope; |
| 469 | if (isNil(scope) && (provider as ClassProvider).useClass) { |
| 470 | scope = getClassScope((provider as ClassProvider).useClass); |
| 471 | } |
| 472 | this.applicationProvidersApplyMap.push({ |
| 473 | type, |
| 474 | moduleKey: token, |
| 475 | providerKey: providerToken, |
| 476 | scope, |
| 477 | }); |
| 478 | |
| 479 | const newProvider = { |
| 480 | ...provider, |
| 481 | provide: providerToken, |
| 482 | scope, |
| 483 | } as Provider; |
| 484 | |
| 485 | const enhancerSubtype = |
| 486 | ENHANCER_TOKEN_TO_SUBTYPE_MAP[ |
| 487 | type as |
| 488 | | typeof APP_GUARD |
| 489 | | typeof APP_PIPE |
| 490 | | typeof APP_FILTER |
| 491 | | typeof APP_INTERCEPTOR |
| 492 | ]; |
| 493 | const factoryOrClassProvider = newProvider as |
| 494 | | FactoryProvider |
| 495 | | ClassProvider; |
| 496 | if (this.isRequestOrTransient(factoryOrClassProvider.scope!)) { |
| 497 | return this.container.addInjectable(newProvider, token, enhancerSubtype); |
| 498 | } |
| 499 | this.container.addProvider(newProvider, token, enhancerSubtype); |
| 500 | } |
| 501 | |
| 502 | public insertInjectable( |
| 503 | injectable: Type<Injectable> | object, |
no test coverage detected