From 11e16c7b41139a248f334553fda546052c5000e8 Mon Sep 17 00:00:00 2001 From: Pete Bacon Darwin Date: Tue, 2 Mar 2021 14:34:53 +0000 Subject: [PATCH] =?UTF-8?q?refactor(core):=20do=20not=20publish=20`=C9=B5?= =?UTF-8?q?=C9=B5getFactoryOf()`=20(#41040)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, `ɵɵgetFactoryOf()` was "privately" published from `@angular/core` since in the past it was assumed that this might be an instruction generated by the compiler. This is not currently the case, so this commit removes it from the private exports and renames it to indicate that it is a local helper function. PR Close #41040 --- .../core/src/core_render3_private_export.ts | 1 - packages/core/src/render3/di.ts | 43 +++++++++---------- packages/core/src/render3/index.ts | 2 +- .../bundling/forms/bundle.golden_symbols.json | 6 +-- 4 files changed, 24 insertions(+), 28 deletions(-) diff --git a/packages/core/src/core_render3_private_export.ts b/packages/core/src/core_render3_private_export.ts index 268dbe0f335..dd6525fd343 100644 --- a/packages/core/src/core_render3_private_export.ts +++ b/packages/core/src/core_render3_private_export.ts @@ -145,7 +145,6 @@ export { ɵɵenableBindings, ɵɵFactoryDef, ɵɵgetCurrentView, - ɵɵgetFactoryOf, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, diff --git a/packages/core/src/render3/di.ts b/packages/core/src/render3/di.ts index fa1f98e62e0..1f92458ef10 100644 --- a/packages/core/src/render3/di.ts +++ b/packages/core/src/render3/di.ts @@ -698,40 +698,19 @@ export class NodeInjector implements Injector { } } -/** - * @codeGenApi - */ -export function ɵɵgetFactoryOf(type: Type): FactoryFn|null { - const typeAny = type as any; - - if (isForwardRef(type)) { - return (() => { - const factory = ɵɵgetFactoryOf(resolveForwardRef(typeAny)); - return factory ? factory() : null; - }) as any; - } - - let factory = getFactoryDef(typeAny); - if (factory === null) { - const injectorDef = getInjectorDef(typeAny); - factory = injectorDef && injectorDef.factory; - } - return factory || null; -} - /** * @codeGenApi */ export function ɵɵgetInheritedFactory(type: Type): (type: Type) => T { return noSideEffects(() => { const ownConstructor = type.prototype.constructor; - const ownFactory = ownConstructor[NG_FACTORY_DEF] || ɵɵgetFactoryOf(ownConstructor); + const ownFactory = ownConstructor[NG_FACTORY_DEF] || getFactoryOf(ownConstructor); const objectPrototype = Object.prototype; let parent = Object.getPrototypeOf(type.prototype).constructor; // Go up the prototype until we hit `Object`. while (parent && parent !== objectPrototype) { - const factory = parent[NG_FACTORY_DEF] || ɵɵgetFactoryOf(parent); + const factory = parent[NG_FACTORY_DEF] || getFactoryOf(parent); // If we hit something that has a factory and the factory isn't the same as the type, // we've found the inherited factory. Note the check that the factory isn't the type's @@ -752,3 +731,21 @@ export function ɵɵgetInheritedFactory(type: Type): (type: Type) => return t => new t(); }); } + +function getFactoryOf(type: Type): FactoryFn|null { + const typeAny = type as any; + + if (isForwardRef(type)) { + return (() => { + const factory = getFactoryOf(resolveForwardRef(typeAny)); + return factory ? factory() : null; + }) as any; + } + + let factory = getFactoryDef(typeAny); + if (factory === null) { + const injectorDef = getInjectorDef(typeAny); + factory = injectorDef && injectorDef.factory; + } + return factory || null; +} diff --git a/packages/core/src/render3/index.ts b/packages/core/src/render3/index.ts index 182961bac6f..1d1322c36eb 100644 --- a/packages/core/src/render3/index.ts +++ b/packages/core/src/render3/index.ts @@ -16,7 +16,7 @@ import {getComponent, getDirectives, getHostElement, getRenderedText} from './ut export {NgModuleType} from '../metadata/ng_module_def'; export {ComponentFactory, ComponentFactoryResolver, ComponentRef, injectComponentFactoryResolver} from './component_ref'; -export {ɵɵgetFactoryOf, ɵɵgetInheritedFactory} from './di'; +export {ɵɵgetInheritedFactory} from './di'; export {getLocaleId, setLocaleId} from './i18n/i18n_locale_id'; // clang-format off export { diff --git a/packages/core/test/bundling/forms/bundle.golden_symbols.json b/packages/core/test/bundling/forms/bundle.golden_symbols.json index dded841b47e..b6ddd81b754 100644 --- a/packages/core/test/bundling/forms/bundle.golden_symbols.json +++ b/packages/core/test/bundling/forms/bundle.golden_symbols.json @@ -1004,6 +1004,9 @@ { "name": "getFactoryDef" }, + { + "name": "getFactoryOf" + }, { "name": "getFirstLContainer" }, @@ -1718,9 +1721,6 @@ { "name": "ɵɵelementStart" }, - { - "name": "ɵɵgetFactoryOf" - }, { "name": "ɵɵgetInheritedFactory" },