MCPcopy
hub / github.com/nestjs/nest / addProvider

Method addProvider

packages/core/injector/module.ts:249–285  ·  view source on GitHub ↗
(provider: Provider, enhancerSubtype?: EnhancerSubtype)

Source from the content-addressed store, hash-verified

247 enhancerSubtype: EnhancerSubtype,
248 ): InjectionToken;
249 public addProvider(provider: Provider, enhancerSubtype?: EnhancerSubtype) {
250 if (this.isCustomProvider(provider)) {
251 if (this.isEntryProvider(provider.provide)) {
252 this._entryProviderKeys.add(provider.provide);
253 }
254 return this.addCustomProvider(provider, this._providers, enhancerSubtype);
255 }
256
257 const isAlreadyDeclared = this._providers.has(provider);
258 if (
259 (this.isTransientProvider(provider) ||
260 this.isRequestScopeProvider(provider)) &&
261 isAlreadyDeclared
262 ) {
263 return provider;
264 }
265
266 this._providers.set(
267 provider,
268 new InstanceWrapper({
269 token: provider,
270 name: (provider as Type<Injectable>).name,
271 metatype: provider as Type<Injectable>,
272 instance: null,
273 isResolved: false,
274 scope: getClassScope(provider),
275 durable: isDurable(provider),
276 host: this,
277 }),
278 );
279
280 if (this.isEntryProvider(provider)) {
281 this._entryProviderKeys.add(provider);
282 }
283
284 return provider as Type<Injectable>;
285 }
286
287 public isCustomProvider(
288 provider: Provider,

Calls 10

isCustomProviderMethod · 0.95
isEntryProviderMethod · 0.95
addCustomProviderMethod · 0.95
isTransientProviderMethod · 0.95
getClassScopeFunction · 0.90
isDurableFunction · 0.90
addMethod · 0.80
hasMethod · 0.80
setMethod · 0.65

Tested by

no test coverage detected