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 268dbe0f33..dd6525fd34 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 fa1f98e62e..1f92458ef1 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 182961bac6..1d1322c36e 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 dded841b47..b6ddd81b75 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" },