MCPcopy
hub / github.com/angular/angular / injectRootLimpMode

Function injectRootLimpMode

packages/core/src/di/inject_switch.ts:50–67  ·  view source on GitHub ↗
(
  token: ProviderToken<T>,
  notFoundValue: T | undefined,
  flags: InternalInjectFlags,
)

Source from the content-addressed store, hash-verified

48 * injectable definition.
49 */
50export function injectRootLimpMode<T>(
51 token: ProviderToken<T>,
52 notFoundValue: T | undefined,
53 flags: InternalInjectFlags,
54): T | null {
55 const injectableDef: ɵɵInjectableDeclaration<T> | null = getInjectableDef(token);
56 if (injectableDef && injectableDef.providedIn == 'root') {
57 return injectableDef.value === undefined
58 ? (injectableDef.value = injectableDef.factory())
59 : injectableDef.value;
60 }
61 if (flags & InternalInjectFlags.Optional) return null;
62 if (notFoundValue !== undefined) return notFoundValue;
63 throwProviderNotFoundError(
64 token,
65 typeof ngDevMode !== 'undefined' && ngDevMode ? 'Injector' : '',
66 );
67}
68
69/**
70 * Assert that `_injectImplementation` is not `fn`.

Callers 2

injectInjectorOnlyFunction · 0.90

Calls 3

getInjectableDefFunction · 0.90
factoryMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…