Skip to content

Commit d3594fc

Browse files
alxhubvicb
authored andcommitted
fix(ivy): correctly export all *Def symbols as private (angular#24862)
Previously, some of the *Def symbols were not exported or were exported as public API. This commit ensures every definition type is in the private export namespace. PR Close angular#24862
1 parent 9fd70c9 commit d3594fc

File tree

11 files changed

+14
-21
lines changed

11 files changed

+14
-21
lines changed

packages/compiler-cli/src/ngtsc/transform/src/translator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const CORE_SUPPORTED_SYMBOLS = new Set<string>([
4343
'defineInjector',
4444
'ɵdefineNgModule',
4545
'inject',
46-
'InjectableDef',
46+
'ɵInjectableDef',
4747
'ɵInjectorDef',
4848
'ɵNgModuleDef',
4949
]);

packages/compiler-cli/test/ngtsc/ngtsc_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@ describe('ngtsc behavioral tests', () => {
119119
expect(jsContents).toContain('Service.ngInjectableDef =');
120120
expect(jsContents).not.toContain('__decorate');
121121
const dtsContents = getContents('test.d.ts');
122-
expect(dtsContents).toContain('static ngInjectableDef: i0.InjectableDef<Dep>;');
123-
expect(dtsContents).toContain('static ngInjectableDef: i0.InjectableDef<Service>;');
122+
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef<Dep>;');
123+
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef<Service>;');
124124
});
125125

126126
it('should compile Components without errors', () => {

packages/compiler/src/identifiers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export class Identifiers {
6565
static INJECTOR: o.ExternalReference = {name: 'INJECTOR', moduleName: CORE};
6666
static Injector: o.ExternalReference = {name: 'Injector', moduleName: CORE};
6767
static defineInjectable: o.ExternalReference = {name: 'defineInjectable', moduleName: CORE};
68-
static InjectableDef: o.ExternalReference = {name: 'InjectableDef', moduleName: CORE};
68+
static InjectableDef: o.ExternalReference = {name: 'ɵInjectableDef', moduleName: CORE};
6969
static ViewEncapsulation: o.ExternalReference = {
7070
name: 'ViewEncapsulation',
7171
moduleName: CORE,

packages/core/src/core_private_export.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export {devModeEqual as ɵdevModeEqual} from './change_detection/change_detectio
1313
export {isListLikeIterable as ɵisListLikeIterable} from './change_detection/change_detection_util';
1414
export {ChangeDetectorStatus as ɵChangeDetectorStatus, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy} from './change_detection/constants';
1515
export {Console as ɵConsole} from './console';
16+
export {InjectableDef as ɵInjectableDef, InjectorDef as ɵInjectorDef} from './di/defs';
1617
export {inject as ɵinject, setCurrentInjector as ɵsetCurrentInjector} from './di/injector';
1718
export {APP_ROOT as ɵAPP_ROOT} from './di/scope';
1819
export {ivyEnabled as ɵivyEnabled} from './ivy_switch';

packages/core/src/core_render3_private_export.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export {
2525
PublicFeature as ɵPublicFeature,
2626
InheritDefinitionFeature as ɵInheritDefinitionFeature,
2727
NgOnChangesFeature as ɵNgOnChangesFeature,
28-
NgModuleDef as ɵNgModuleDef,
2928
NgModuleType as ɵNgModuleType,
3029
CssSelectorList as ɵCssSelectorList,
3130
markDirty as ɵmarkDirty,
@@ -100,6 +99,7 @@ export {
10099
I18nInstruction as ɵI18nInstruction,
101100
I18nExpInstruction as ɵI18nExpInstruction,
102101
} from './render3/index';
102+
export {NgModuleDef as ɵNgModuleDef} from './metadata/ng_module';
103103
export {
104104
bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml,
105105
bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle,

packages/core/src/di.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
*/
1414

1515
export * from './di/metadata';
16-
export {InjectableType, InjectorDef, InjectorType, defineInjectable, defineInjector} from './di/defs';
16+
export {InjectableType, InjectorType, defineInjectable, defineInjector} from './di/defs';
1717
export {forwardRef, resolveForwardRef, ForwardRefFn} from './di/forward_ref';
1818
export {Injectable, InjectableDecorator, InjectableProvider} from './di/injectable';
1919
export {inject, InjectFlags, INJECTOR, Injector} from './di/injector';

packages/core/src/r3_symbols.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* The below symbols are used for @Injectable and @NgModule compilation.
2020
*/
2121

22-
export {InjectableDef, InjectorDef as ɵInjectorDef, defineInjectable, defineInjector} from './di/defs';
22+
export {InjectableDef as ɵInjectableDef, InjectorDef as ɵInjectorDef, defineInjectable, defineInjector} from './di/defs';
2323
export {inject} from './di/injector';
2424
export {NgModuleDef as ɵNgModuleDef} from './metadata/ng_module';
2525
export {defineNgModule as ɵdefineNgModule} from './render3/definition';

packages/core/src/render3/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export {
9595
I18nExpInstruction
9696
} from './i18n';
9797

98-
export {NgModuleDef, NgModuleFactory, NgModuleRef, NgModuleType} from './ng_module_ref';
98+
export {NgModuleFactory, NgModuleRef, NgModuleType} from './ng_module_ref';
9999

100100
export {
101101
AttributeMarker

packages/core/src/render3/ng_module_ref.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,13 @@ import {StaticProvider} from '../di/provider';
1111
import {createInjector} from '../di/r3_injector';
1212
import {ComponentFactoryResolver as viewEngine_ComponentFactoryResolver} from '../linker/component_factory_resolver';
1313
import {InternalNgModuleRef, NgModuleFactory as viewEngine_NgModuleFactory, NgModuleRef as viewEngine_NgModuleRef} from '../linker/ng_module_factory';
14+
import {NgModuleDefInternal} from '../metadata/ng_module';
1415
import {Type} from '../type';
1516
import {stringify} from '../util';
1617
import {assertDefined} from './assert';
1718
import {ComponentFactoryResolver} from './component_ref';
1819

19-
export interface NgModuleType { ngModuleDef: NgModuleDef; }
20-
21-
export interface NgModuleDef { bootstrap: Type<any>[]; }
20+
export interface NgModuleType { ngModuleDef: NgModuleDefInternal<any>; }
2221

2322
export const COMPONENT_FACTORY_RESOLVER: StaticProvider = {
2423
provide: viewEngine_ComponentFactoryResolver,

packages/core/test/application_ref_integration_spec.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,9 @@ describe('ApplicationRef bootstrap', () => {
8686
providers: APPLICATION_MODULE_PROVIDERS
8787
});
8888

89-
export function defineNgModule({bootstrap}: {bootstrap?: Type<any>[]}): NgModuleDef {
90-
return {
91-
bootstrap: bootstrap || [],
92-
};
89+
export function defineNgModule({bootstrap}: {bootstrap?: Type<any>[]}):
90+
NgModuleDef<any, any, any, any> {
91+
return ({ bootstrap: bootstrap || [], } as any);
9392
}
9493

9594
/////////////////////////////////////////////////////////

tools/public_api_guard/core/core.d.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -408,12 +408,6 @@ export declare abstract class Injector {
408408
/** @experimental */
409409
export declare const INJECTOR: InjectionToken<Injector>;
410410

411-
export interface InjectorDef<T> {
412-
factory: () => T;
413-
imports: (InjectorType<any> | InjectorTypeWithProviders<any>)[];
414-
providers: (Type<any> | ValueProvider | ExistingProvider | FactoryProvider | ConstructorProvider | StaticClassProvider | ClassProvider | any[])[];
415-
}
416-
417411
/** @experimental */
418412
export interface InjectorType<T> extends Type<T> {
419413
ngInjectorDef: never;

0 commit comments

Comments
 (0)