Skip to content

Commit 885f1af

Browse files
mheveryAndrewKushnir
authored andcommitted
build: extract interface and util sub compilation from core (angular#28028)
PR Close angular#28028
1 parent b05baa5 commit 885f1af

File tree

140 files changed

+773
-363
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

140 files changed

+773
-363
lines changed

packages/core/BUILD.bazel

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ ng_module(
1313
module_name = "@angular/core",
1414
deps = [
1515
"//packages:types",
16+
"//packages/core/src/di/interface",
17+
"//packages/core/src/interface",
18+
"//packages/core/src/util",
1619
"@ngdeps//zone.js",
1720
"@rxjs",
1821
"@rxjs//operators",

packages/core/src/application_ref.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {APP_BOOTSTRAP_LISTENER, PLATFORM_INITIALIZER} from './application_tokens
1414
import {Console} from './console';
1515
import {Injectable, InjectionToken, Injector, StaticProvider} from './di';
1616
import {ErrorHandler} from './error_handler';
17-
import {isDevMode} from './is_dev_mode';
17+
import {Type} from './interface/type';
1818
import {CompilerFactory, CompilerOptions} from './linker/compiler';
1919
import {ComponentFactory, ComponentRef} from './linker/component_factory';
2020
import {ComponentFactoryBoundToModule, ComponentFactoryResolver} from './linker/component_factory_resolver';
@@ -24,9 +24,10 @@ import {WtfScopeFn, wtfCreateScope, wtfLeave} from './profile/profile';
2424
import {assertNgModuleType} from './render3/assert';
2525
import {NgModuleFactory as R3NgModuleFactory} from './render3/ng_module_ref';
2626
import {Testability, TestabilityRegistry} from './testability/testability';
27-
import {Type} from './type';
28-
import {scheduleMicroTask, stringify} from './util';
27+
import {isDevMode} from './util/is_dev_mode';
2928
import {isPromise} from './util/lang';
29+
import {scheduleMicroTask} from './util/microtask';
30+
import {stringify} from './util/stringify';
3031
import {NgZone, NoopNgZone} from './zone/ng_zone';
3132

3233
let _platform: PlatformRef;

packages/core/src/change_detection/change_detection_util.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {getSymbolIterator, looseIdentical} from '../util';
9+
import {looseIdentical} from '../util/comparison';
10+
import {getSymbolIterator} from '../util/symbol';
1011

1112
export function devModeEqual(a: any, b: any): boolean {
1213
const isListLikeIterableA = isListLikeIterable(a);

packages/core/src/change_detection/differs/default_iterable_differ.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {looseIdentical, stringify} from '../../util';
9+
import {looseIdentical} from '../../util/comparison';
10+
import {stringify} from '../../util/stringify';
1011
import {isListLikeIterable, iterateListLike} from '../change_detection_util';
12+
1113
import {IterableChangeRecord, IterableChanges, IterableDiffer, IterableDifferFactory, NgIterable, TrackByFunction} from './iterable_differs';
1214

1315

packages/core/src/change_detection/differs/default_keyvalue_differ.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {looseIdentical, stringify} from '../../util';
9+
import {looseIdentical} from '../../util/comparison';
10+
import {stringify} from '../../util/stringify';
1011
import {isJsObject} from '../change_detection_util';
1112
import {KeyValueChangeRecord, KeyValueChanges, KeyValueDiffer, KeyValueDifferFactory} from './keyvalue_differs';
1213

packages/core/src/change_detection/differs/iterable_differs.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {defineInjectable} from '../../di/defs';
9+
import {defineInjectable} from '../../di/interface/defs';
10+
import {StaticProvider} from '../../di/interface/provider';
1011
import {Optional, SkipSelf} from '../../di/metadata';
11-
import {StaticProvider} from '../../di/provider';
1212
import {DefaultIterableDifferFactory} from '../differs/default_iterable_differ';
1313

1414

15+
1516
/**
1617
* A type describing supported iterable types.
1718
*

packages/core/src/core.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export * from './version';
1616
export {TypeDecorator} from './util/decorators';
1717
export * from './di';
1818
export {createPlatform, assertPlatform, destroyPlatform, getPlatform, PlatformRef, ApplicationRef, createPlatformFactory, NgProbeToken} from './application_ref';
19-
export {enableProdMode, isDevMode} from './is_dev_mode';
19+
export {enableProdMode, isDevMode} from './util/is_dev_mode';
2020
export {APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, PLATFORM_ID, APP_BOOTSTRAP_LISTENER} from './application_tokens';
2121
export {APP_INITIALIZER, ApplicationInitStatus} from './application_init';
2222
export * from './zone';
@@ -29,7 +29,7 @@ export * from './platform_core_providers';
2929
export {TRANSLATIONS, TRANSLATIONS_FORMAT, LOCALE_ID, MissingTranslationStrategy} from './i18n/tokens';
3030
export {ApplicationModule} from './application_module';
3131
export {wtfCreateScope, wtfLeave, wtfStartTimeRange, wtfEndTimeRange, WtfScopeFn} from './profile/profile';
32-
export {Type} from './type';
32+
export {Type} from './interface/type';
3333
export {EventEmitter} from './event_emitter';
3434
export {ErrorHandler} from './error_handler';
3535
export * from './core_private_export';

packages/core/src/core_private_export.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ 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, getInjectableDef as ɵgetInjectableDef} from './di/defs';
1716
export {inject as ɵinject, setCurrentInjector as ɵsetCurrentInjector} from './di/injector_compatibility';
17+
export {InjectableDef as ɵInjectableDef, InjectorDef as ɵInjectorDef, getInjectableDef as ɵgetInjectableDef} from './di/interface/defs';
1818
export {APP_ROOT as ɵAPP_ROOT} from './di/scope';
1919
export {ivyEnabled as ɵivyEnabled} from './ivy_switch';
2020
export {ComponentFactory as ɵComponentFactory} from './linker/component_factory';
@@ -26,7 +26,9 @@ export {DirectRenderer as ɵDirectRenderer, RenderDebugInfo as ɵRenderDebugInfo
2626
export {_sanitizeHtml as ɵ_sanitizeHtml} from './sanitization/html_sanitizer';
2727
export {_sanitizeStyle as ɵ_sanitizeStyle} from './sanitization/style_sanitizer';
2828
export {_sanitizeUrl as ɵ_sanitizeUrl} from './sanitization/url_sanitizer';
29-
export {global as ɵglobal, looseIdentical as ɵlooseIdentical, stringify as ɵstringify} from './util';
29+
export {global as ɵglobal} from './util/global';
30+
export {looseIdentical as ɵlooseIdentical,} from './util/comparison';
31+
export {stringify as ɵstringify} from './util/stringify';
3032
export {makeDecorator as ɵmakeDecorator} from './util/decorators';
3133
export {isObservable as ɵisObservable, isPromise as ɵisPromise} from './util/lang';
3234
export {clearOverrides as ɵclearOverrides, initServicesIfNeeded as ɵinitServicesIfNeeded, overrideComponentView as ɵoverrideComponentView, overrideProvider as ɵoverrideProvider} from './view/index';

packages/core/src/core_render3_private_export.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,16 @@ export {
171171
NG_ELEMENT_ID as ɵNG_ELEMENT_ID,
172172
NG_COMPONENT_DEF as ɵNG_COMPONENT_DEF,
173173
NG_DIRECTIVE_DEF as ɵNG_DIRECTIVE_DEF,
174-
NG_INJECTABLE_DEF as ɵNG_INJECTABLE_DEF,
175-
NG_INJECTOR_DEF as ɵNG_INJECTOR_DEF,
176174
NG_PIPE_DEF as ɵNG_PIPE_DEF,
177175
NG_MODULE_DEF as ɵNG_MODULE_DEF,
178176
NG_BASE_DEF as ɵNG_BASE_DEF
179177
} from './render3/fields';
180178

179+
export {
180+
NG_INJECTABLE_DEF as ɵNG_INJECTABLE_DEF,
181+
NG_INJECTOR_DEF as ɵNG_INJECTOR_DEF,
182+
} from './di/interface/defs';
183+
181184
export {
182185
Player as ɵPlayer,
183186
PlayerFactory as ɵPlayerFactory,

packages/core/src/debug/debug_node.ts

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

99
import {Injector} from '../di';
10-
import {assertDomNode} from '../render3/assert';
1110
import {getComponent, getContext, getInjectionTokens, getInjector, getListeners, getLocalRefs, isBrowserEvents, loadLContext, loadLContextFromNode} from '../render3/discovery_utils';
1211
import {TNode} from '../render3/interfaces/node';
1312
import {StylingIndex} from '../render3/interfaces/styling';
1413
import {TVIEW} from '../render3/interfaces/view';
1514
import {getProp, getValue, isClassBasedValue} from '../render3/styling/class_and_style_bindings';
1615
import {getStylingContext} from '../render3/styling/util';
16+
import {assertDomNode} from '../util/assert';
1717
import {DebugContext} from '../view/index';
1818

1919
export class EventListener {

packages/core/src/di.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313
*/
1414

1515
export * from './di/metadata';
16-
export {InjectableType, InjectorType, defineInjectable, defineInjector} from './di/defs';
16+
export {InjectableType, InjectorType, defineInjectable, defineInjector} from './di/interface/defs';
1717
export {forwardRef, resolveForwardRef, ForwardRefFn} from './di/forward_ref';
1818
export {Injectable, InjectableDecorator, InjectableProvider} from './di/injectable';
1919
export {INJECTOR, Injector} from './di/injector';
2020
export {inject, InjectFlags} from './di/injector_compatibility';
2121
export {ReflectiveInjector} from './di/reflective_injector';
22-
export {StaticProvider, ValueProvider, ConstructorSansProvider, ExistingProvider, FactoryProvider, Provider, TypeProvider, ClassProvider} from './di/provider';
22+
export {StaticProvider, ValueProvider, ConstructorSansProvider, ExistingProvider, FactoryProvider, Provider, TypeProvider, ClassProvider} from './di/interface/provider';
2323
export {createInjector} from './di/r3_injector';
2424
export {ResolvedReflectiveFactory, ResolvedReflectiveProvider} from './di/reflective_provider';
2525
export {ReflectiveKey} from './di/reflective_key';

packages/core/src/di/forward_ref.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {Type} from '../type';
10-
import {stringify} from '../util';
9+
import {Type} from '../interface/type';
1110
import {getClosureSafeProperty} from '../util/property';
11+
import {stringify} from '../util/stringify';
1212

1313

1414

packages/core/src/di/injectable.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9+
import {Type} from '../interface/type';
910
import {compileInjectable as render3CompileInjectable} from '../render3/jit/injectable';
10-
import {Type} from '../type';
1111
import {TypeDecorator, makeDecorator} from '../util/decorators';
1212

13-
import {InjectableDef, InjectableType, defineInjectable, getInjectableDef} from './defs';
14-
import {ClassSansProvider, ConstructorSansProvider, ExistingSansProvider, FactorySansProvider, StaticClassSansProvider, ValueSansProvider} from './provider';
13+
import {InjectableDef, InjectableType, defineInjectable, getInjectableDef} from './interface/defs';
14+
import {ClassSansProvider, ConstructorSansProvider, ExistingSansProvider, FactorySansProvider, StaticClassSansProvider, ValueSansProvider} from './interface/provider';
1515
import {convertInjectableProviderToFactory} from './util';
1616

1717

18+
1819
/**
1920
* Injectable providers used in `@Injectable` decorator.
2021
*

packages/core/src/di/injection_token.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {Type} from '../type';
9+
import {Type} from '../interface/type';
1010

11-
import {defineInjectable} from './defs';
11+
import {defineInjectable} from './interface/defs';
1212

1313
/**
1414
* Creates a token that can be used in a DI Provider.

packages/core/src/di/injector.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9+
import {Type} from '../interface/type';
910
import {injectInjector} from '../render3/di';
10-
import {Type} from '../type';
11-
import {stringify} from '../util';
1211
import {noop} from '../util/noop';
1312
import {getClosureSafeProperty} from '../util/property';
13+
import {stringify} from '../util/stringify';
1414

15-
import {defineInjectable} from './defs';
1615
import {resolveForwardRef} from './forward_ref';
1716
import {InjectionToken} from './injection_token';
1817
import {InjectFlags, inject} from './injector_compatibility';
18+
import {defineInjectable} from './interface/defs';
19+
import {ConstructorProvider, ExistingProvider, FactoryProvider, StaticClassProvider, StaticProvider, ValueProvider} from './interface/provider';
1920
import {Inject, Optional, Self, SkipSelf} from './metadata';
20-
import {ConstructorProvider, ExistingProvider, FactoryProvider, StaticClassProvider, StaticProvider, ValueProvider} from './provider';
2121

2222
export const SOURCE = '__source';
2323
const _THROW_IF_NOT_FOUND = new Object();

packages/core/src/di/injector_compatibility.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {Type} from '../type';
10-
import {stringify} from '../util';
9+
import {Type} from '../interface/type';
10+
import {stringify} from '../util/stringify';
1111

12-
import {InjectableDef, getInjectableDef} from './defs';
1312
import {InjectionToken} from './injection_token';
1413
import {Injector} from './injector';
14+
import {InjectableDef, getInjectableDef} from './interface/defs';
1515
import {Inject, Optional, Self, SkipSelf} from './metadata';
1616

17+
1718
/**
1819
* Injection flags for DI.
1920
*
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package(default_visibility = [
2+
"//packages/core:__subpackages__",
3+
"//tools/public_api_guard:__pkg__",
4+
])
5+
6+
load("//tools:defaults.bzl", "ts_library")
7+
8+
ts_library(
9+
name = "interface",
10+
srcs = glob(
11+
[
12+
"**/*.ts",
13+
],
14+
),
15+
module_name = "@angular/core/di/interface",
16+
deps = [
17+
"//packages/core/src/interface",
18+
"//packages/core/src/util",
19+
"@rxjs",
20+
"@rxjs//operators",
21+
],
22+
)

packages/core/src/di/defs.ts renamed to packages/core/src/di/interface/defs.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {NG_INJECTABLE_DEF, NG_INJECTOR_DEF} from '../render3/fields';
10-
import {Type} from '../type';
9+
import {Type} from '../../interface/type';
10+
import {getClosureSafeProperty} from '../../util/property';
11+
import {ClassProvider, ConstructorProvider, ExistingProvider, FactoryProvider, StaticClassProvider, ValueProvider} from './provider';
12+
1113

12-
import {ClassProvider, ClassSansProvider, ConstructorProvider, ConstructorSansProvider, ExistingProvider, ExistingSansProvider, FactoryProvider, FactorySansProvider, StaticClassProvider, StaticClassSansProvider, ValueProvider, ValueSansProvider} from './provider';
1314

1415
/**
1516
* Information about how a type or `InjectionToken` interfaces with the DI system.
@@ -178,4 +179,7 @@ export function getInjectableDef<T>(type: any): InjectableDef<T>|null {
178179
*/
179180
export function getInjectorDef<T>(type: any): InjectorDef<T>|null {
180181
return type && type.hasOwnProperty(NG_INJECTOR_DEF) ? (type as any)[NG_INJECTOR_DEF] : null;
181-
}
182+
}
183+
184+
export const NG_INJECTABLE_DEF = getClosureSafeProperty({ngInjectableDef: getClosureSafeProperty});
185+
export const NG_INJECTOR_DEF = getClosureSafeProperty({ngInjectorDef: getClosureSafeProperty});

packages/core/src/di/provider.ts renamed to packages/core/src/di/interface/provider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {Type} from '../type';
9+
import {Type} from '../../interface/type';
1010

1111
/**
1212
* Configures the `Injector` to return a value for a token.

packages/core/src/di/metadata.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {ClassSansProvider, ConstructorProvider, ConstructorSansProvider, ExistingProvider, ExistingSansProvider, FactoryProvider, FactorySansProvider, StaticClassProvider, StaticClassSansProvider, ValueProvider, ValueSansProvider} from '../di/provider';
9+
import {Type} from '../interface/type';
1010
import {ReflectionCapabilities} from '../reflection/reflection_capabilities';
11-
import {Type} from '../type';
1211
import {makeDecorator, makeParamDecorator} from '../util/decorators';
1312
import {EMPTY_ARRAY} from '../view/util';
1413

14+
import {ClassSansProvider, ConstructorProvider, ConstructorSansProvider, ExistingProvider, ExistingSansProvider, FactoryProvider, FactorySansProvider, StaticClassProvider, StaticClassSansProvider, ValueProvider, ValueSansProvider} from './interface/provider';
15+
16+
1517

1618
/**
1719
* Type of the Inject decorator / constructor function.

packages/core/src/di/r3_injector.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9+
import {Type} from '../interface/type';
910
import {OnDestroy} from '../metadata/lifecycle_hooks';
10-
import {Type} from '../type';
11-
import {stringify} from '../util';
11+
import {stringify} from '../util/stringify';
1212

13-
import {InjectableDef, InjectableType, InjectorType, InjectorTypeWithProviders, getInjectableDef, getInjectorDef} from './defs';
1413
import {resolveForwardRef} from './forward_ref';
1514
import {InjectionToken} from './injection_token';
1615
import {INJECTOR, Injector, NullInjector, THROW_IF_NOT_FOUND, USE_VALUE} from './injector';
1716
import {InjectFlags, inject, injectArgs, setCurrentInjector} from './injector_compatibility';
18-
import {ClassProvider, ConstructorProvider, ExistingProvider, FactoryProvider, Provider, StaticClassProvider, StaticProvider, TypeProvider, ValueProvider} from './provider';
17+
import {InjectableDef, InjectableType, InjectorType, InjectorTypeWithProviders, getInjectableDef, getInjectorDef} from './interface/defs';
18+
import {ClassProvider, ConstructorProvider, ExistingProvider, FactoryProvider, Provider, StaticClassProvider, StaticProvider, TypeProvider, ValueProvider} from './interface/provider';
1919
import {APP_ROOT} from './scope';
2020

2121

packages/core/src/di/reflective_errors.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
*/
88

99
import {wrappedError} from '../error_handler';
10-
import {ERROR_ORIGINAL_ERROR, getOriginalError} from '../errors';
11-
import {Type} from '../type';
12-
import {stringify} from '../util';
10+
import {Type} from '../interface/type';
11+
import {ERROR_ORIGINAL_ERROR} from '../util/errors';
12+
import {stringify} from '../util/stringify';
1313

1414
import {ReflectiveInjector} from './reflective_injector';
1515
import {ReflectiveKey} from './reflective_key';

packages/core/src/di/reflective_injector.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
*/
88

99
import {Injector, THROW_IF_NOT_FOUND} from './injector';
10+
import {Provider} from './interface/provider';
1011
import {Self, SkipSelf} from './metadata';
11-
import {Provider} from './provider';
1212
import {cyclicDependencyError, instantiationError, noProviderError, outOfBoundsError} from './reflective_errors';
1313
import {ReflectiveKey} from './reflective_key';
1414
import {ReflectiveDependency, ResolvedReflectiveFactory, ResolvedReflectiveProvider, resolveReflectiveProviders} from './reflective_provider';
1515

16+
1617
// Threshold for the dynamic version
1718
const UNDEFINED = new Object();
1819

packages/core/src/di/reflective_key.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import {stringify} from '../util';
9+
import {stringify} from '../util/stringify';
1010
import {resolveForwardRef} from './forward_ref';
1111

1212

0 commit comments

Comments
 (0)