fix(ivy): correctly export all *Def symbols as private (#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 #24862
This commit is contained in:
parent
9fd70c9715
commit
d3594fc1c5
|
@ -43,7 +43,7 @@ const CORE_SUPPORTED_SYMBOLS = new Set<string>([
|
|||
'defineInjector',
|
||||
'ɵdefineNgModule',
|
||||
'inject',
|
||||
'InjectableDef',
|
||||
'ɵInjectableDef',
|
||||
'ɵInjectorDef',
|
||||
'ɵNgModuleDef',
|
||||
]);
|
||||
|
|
|
@ -119,8 +119,8 @@ describe('ngtsc behavioral tests', () => {
|
|||
expect(jsContents).toContain('Service.ngInjectableDef =');
|
||||
expect(jsContents).not.toContain('__decorate');
|
||||
const dtsContents = getContents('test.d.ts');
|
||||
expect(dtsContents).toContain('static ngInjectableDef: i0.InjectableDef<Dep>;');
|
||||
expect(dtsContents).toContain('static ngInjectableDef: i0.InjectableDef<Service>;');
|
||||
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef<Dep>;');
|
||||
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef<Service>;');
|
||||
});
|
||||
|
||||
it('should compile Components without errors', () => {
|
||||
|
|
|
@ -65,7 +65,7 @@ export class Identifiers {
|
|||
static INJECTOR: o.ExternalReference = {name: 'INJECTOR', moduleName: CORE};
|
||||
static Injector: o.ExternalReference = {name: 'Injector', moduleName: CORE};
|
||||
static defineInjectable: o.ExternalReference = {name: 'defineInjectable', moduleName: CORE};
|
||||
static InjectableDef: o.ExternalReference = {name: 'InjectableDef', moduleName: CORE};
|
||||
static InjectableDef: o.ExternalReference = {name: 'ɵInjectableDef', moduleName: CORE};
|
||||
static ViewEncapsulation: o.ExternalReference = {
|
||||
name: 'ViewEncapsulation',
|
||||
moduleName: CORE,
|
||||
|
|
|
@ -13,6 +13,7 @@ export {devModeEqual as ɵdevModeEqual} from './change_detection/change_detectio
|
|||
export {isListLikeIterable as ɵisListLikeIterable} from './change_detection/change_detection_util';
|
||||
export {ChangeDetectorStatus as ɵChangeDetectorStatus, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy} from './change_detection/constants';
|
||||
export {Console as ɵConsole} from './console';
|
||||
export {InjectableDef as ɵInjectableDef, InjectorDef as ɵInjectorDef} from './di/defs';
|
||||
export {inject as ɵinject, setCurrentInjector as ɵsetCurrentInjector} from './di/injector';
|
||||
export {APP_ROOT as ɵAPP_ROOT} from './di/scope';
|
||||
export {ivyEnabled as ɵivyEnabled} from './ivy_switch';
|
||||
|
|
|
@ -25,7 +25,6 @@ export {
|
|||
PublicFeature as ɵPublicFeature,
|
||||
InheritDefinitionFeature as ɵInheritDefinitionFeature,
|
||||
NgOnChangesFeature as ɵNgOnChangesFeature,
|
||||
NgModuleDef as ɵNgModuleDef,
|
||||
NgModuleType as ɵNgModuleType,
|
||||
CssSelectorList as ɵCssSelectorList,
|
||||
markDirty as ɵmarkDirty,
|
||||
|
@ -100,6 +99,7 @@ export {
|
|||
I18nInstruction as ɵI18nInstruction,
|
||||
I18nExpInstruction as ɵI18nExpInstruction,
|
||||
} from './render3/index';
|
||||
export {NgModuleDef as ɵNgModuleDef} from './metadata/ng_module';
|
||||
export {
|
||||
bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml,
|
||||
bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle,
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
*/
|
||||
|
||||
export * from './di/metadata';
|
||||
export {InjectableType, InjectorDef, InjectorType, defineInjectable, defineInjector} from './di/defs';
|
||||
export {InjectableType, InjectorType, defineInjectable, defineInjector} from './di/defs';
|
||||
export {forwardRef, resolveForwardRef, ForwardRefFn} from './di/forward_ref';
|
||||
export {Injectable, InjectableDecorator, InjectableProvider} from './di/injectable';
|
||||
export {inject, InjectFlags, INJECTOR, Injector} from './di/injector';
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* The below symbols are used for @Injectable and @NgModule compilation.
|
||||
*/
|
||||
|
||||
export {InjectableDef, InjectorDef as ɵInjectorDef, defineInjectable, defineInjector} from './di/defs';
|
||||
export {InjectableDef as ɵInjectableDef, InjectorDef as ɵInjectorDef, defineInjectable, defineInjector} from './di/defs';
|
||||
export {inject} from './di/injector';
|
||||
export {NgModuleDef as ɵNgModuleDef} from './metadata/ng_module';
|
||||
export {defineNgModule as ɵdefineNgModule} from './render3/definition';
|
||||
|
|
|
@ -95,7 +95,7 @@ export {
|
|||
I18nExpInstruction
|
||||
} from './i18n';
|
||||
|
||||
export {NgModuleDef, NgModuleFactory, NgModuleRef, NgModuleType} from './ng_module_ref';
|
||||
export {NgModuleFactory, NgModuleRef, NgModuleType} from './ng_module_ref';
|
||||
|
||||
export {
|
||||
AttributeMarker
|
||||
|
|
|
@ -11,14 +11,13 @@ import {StaticProvider} from '../di/provider';
|
|||
import {createInjector} from '../di/r3_injector';
|
||||
import {ComponentFactoryResolver as viewEngine_ComponentFactoryResolver} from '../linker/component_factory_resolver';
|
||||
import {InternalNgModuleRef, NgModuleFactory as viewEngine_NgModuleFactory, NgModuleRef as viewEngine_NgModuleRef} from '../linker/ng_module_factory';
|
||||
import {NgModuleDefInternal} from '../metadata/ng_module';
|
||||
import {Type} from '../type';
|
||||
import {stringify} from '../util';
|
||||
import {assertDefined} from './assert';
|
||||
import {ComponentFactoryResolver} from './component_ref';
|
||||
|
||||
export interface NgModuleType { ngModuleDef: NgModuleDef; }
|
||||
|
||||
export interface NgModuleDef { bootstrap: Type<any>[]; }
|
||||
export interface NgModuleType { ngModuleDef: NgModuleDefInternal<any>; }
|
||||
|
||||
export const COMPONENT_FACTORY_RESOLVER: StaticProvider = {
|
||||
provide: viewEngine_ComponentFactoryResolver,
|
||||
|
|
|
@ -86,10 +86,9 @@ describe('ApplicationRef bootstrap', () => {
|
|||
providers: APPLICATION_MODULE_PROVIDERS
|
||||
});
|
||||
|
||||
export function defineNgModule({bootstrap}: {bootstrap?: Type<any>[]}): NgModuleDef {
|
||||
return {
|
||||
bootstrap: bootstrap || [],
|
||||
};
|
||||
export function defineNgModule({bootstrap}: {bootstrap?: Type<any>[]}):
|
||||
NgModuleDef<any, any, any, any> {
|
||||
return ({ bootstrap: bootstrap || [], } as any);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
|
|
|
@ -408,12 +408,6 @@ export declare abstract class Injector {
|
|||
/** @experimental */
|
||||
export declare const INJECTOR: InjectionToken<Injector>;
|
||||
|
||||
export interface InjectorDef<T> {
|
||||
factory: () => T;
|
||||
imports: (InjectorType<any> | InjectorTypeWithProviders<any>)[];
|
||||
providers: (Type<any> | ValueProvider | ExistingProvider | FactoryProvider | ConstructorProvider | StaticClassProvider | ClassProvider | any[])[];
|
||||
}
|
||||
|
||||
/** @experimental */
|
||||
export interface InjectorType<T> extends Type<T> {
|
||||
ngInjectorDef: never;
|
||||
|
|
Loading…
Reference in New Issue