MCPcopy Index your code
hub / github.com/angular/angular / hydrate

Method hydrate

packages/core/src/di/r3_injector.ts:524–549  ·  view source on GitHub ↗
(token: ProviderToken<T>, record: Record<T>, flags: InternalInjectFlags)

Source from the content-addressed store, hash-verified

522 }
523
524 private hydrate<T>(token: ProviderToken<T>, record: Record<T>, flags: InternalInjectFlags): T {
525 const prevConsumer = setActiveConsumer(null);
526 try {
527 if (record.value === CIRCULAR) {
528 throw cyclicDependencyError(ngDevMode ? stringify(token) : '');
529 } else if (record.value === NOT_YET) {
530 record.value = CIRCULAR;
531
532 if (ngDevMode) {
533 runInInjectorProfilerContext(this, token as Type<T>, () => {
534 emitInjectorToCreateInstanceEvent(token);
535 record.value = record.factory!(undefined, flags);
536 emitInstanceCreatedByInjectorEvent(record.value);
537 });
538 } else {
539 record.value = record.factory!(undefined, flags);
540 }
541 }
542 if (typeof record.value === 'object' && record.value && hasOnDestroy(record.value)) {
543 this._ngOnDestroyHooks.add(record.value);
544 }
545 return record.value as T;
546 } finally {
547 setActiveConsumer(prevConsumer);
548 }
549 }
550
551 private injectableDefInScope(def: ɵɵInjectableDeclaration<any>): boolean {
552 if (!def.providedIn) {

Callers 1

getMethod · 0.95

Calls 8

setActiveConsumerFunction · 0.90
cyclicDependencyErrorFunction · 0.90
stringifyFunction · 0.90
hasOnDestroyFunction · 0.85
addMethod · 0.65

Tested by

no test coverage detected