Skip to content

Commit 978ffa9

Browse files
mheveryAndrewKushnir
authored andcommitted
refactor(ivy): refactor more files in DI to prepare it for bazel packages (angular#28098)
PR Close angular#28098
1 parent 6a9a48b commit 978ffa9

29 files changed

Lines changed: 194 additions & 112 deletions

packages/compiler/test/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ ts_library(
4141
"//packages/compiler/test/ml_parser/util",
4242
"//packages/compiler/testing",
4343
"//packages/core",
44+
"//packages/core/src/compiler",
4445
"//packages/core/testing",
4546
"//packages/platform-browser",
4647
"//packages/platform-browser-dynamic",

packages/compiler/test/compiler_facade_interface_spec.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 * as core from '../../core/src/render3/jit/compiler_facade_interface';
9+
import * as core from '../../core/src/compiler/compiler_facade_interface';
1010
import {R3ResolvedDependencyType} from '../public_api';
1111
import * as compiler from '../src/compiler_facade_interface';
1212

packages/core/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ ng_module(
1313
module_name = "@angular/core",
1414
deps = [
1515
"//packages:types",
16+
"//packages/core/src/compiler",
1617
"//packages/core/src/di/interface",
1718
"//packages/core/src/interface",
19+
"//packages/core/src/reflection",
1820
"//packages/core/src/util",
1921
"@ngdeps//zone.js",
2022
"@rxjs",

packages/core/src/change_detection/change_detection.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,20 @@ export {ChangeDetectionStrategy, ChangeDetectorStatus, isDefaultChangeDetectionS
1717
export {DefaultIterableDifferFactory} from './differs/default_iterable_differ';
1818
export {DefaultIterableDiffer} from './differs/default_iterable_differ';
1919
export {DefaultKeyValueDifferFactory} from './differs/default_keyvalue_differ';
20-
export {CollectionChangeRecord, IterableChangeRecord, IterableChanges, IterableDiffer, IterableDifferFactory, IterableDiffers, NgIterable, TrackByFunction} from './differs/iterable_differs';
20+
export {
21+
CollectionChangeRecord,
22+
IterableChangeRecord,
23+
IterableChanges,
24+
IterableDiffer,
25+
IterableDifferFactory,
26+
IterableDiffers,
27+
NgIterable,
28+
TrackByFunction
29+
} from
30+
'./differs/iterable_differs';
2131
export {KeyValueChangeRecord, KeyValueChanges, KeyValueDiffer, KeyValueDifferFactory, KeyValueDiffers} from './differs/keyvalue_differs';
2232
export {PipeTransform} from './pipe_transform';
23-
export {SimpleChange, SimpleChanges} from './simple_change';
33+
export {SimpleChange, SimpleChanges} from '../interface/simple_change';
2434

2535

2636

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

packages/core/src/render3/jit/compiler_facade.ts renamed to packages/core/src/compiler/compiler_facade.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Use of this source code is governed by an MIT-style license that can be
66
* found in the LICENSE file at https://angular.io/license
77
*/
8-
import {global} from '../../util/global';
8+
import {global} from '../util/global';
99
import {CompilerFacade, ExportedCompilerFacade} from './compiler_facade_interface';
1010
export * from './compiler_facade_interface';
1111

packages/core/src/render3/jit/compiler_facade_interface.ts renamed to packages/core/src/compiler/compiler_facade_interface.ts

File renamed without changes.

packages/core/src/di/injectable.ts

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

99
import {Type} from '../interface/type';
10-
import {compileInjectable as render3CompileInjectable} from '../render3/jit/injectable';
1110
import {TypeDecorator, makeDecorator} from '../util/decorators';
12-
13-
import {ClassSansProvider, ConstructorSansProvider, ExistingSansProvider, FactorySansProvider, StaticClassSansProvider, ValueSansProvider,} from './interface/provider';
14-
import {InjectableType, defineInjectable, getInjectableDef, InjectableDef} from './interface/defs';
11+
import {InjectableDef, InjectableType, defineInjectable, getInjectableDef} from './interface/defs';
12+
import {ClassSansProvider, ConstructorSansProvider, ExistingSansProvider, FactorySansProvider, StaticClassSansProvider, ValueSansProvider} from './interface/provider';
13+
import {compileInjectable as render3CompileInjectable} from './jit/injectable';
1514
import {convertInjectableProviderToFactory} from './util';
1615

1716

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* @license
3+
* Copyright Google Inc. All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.io/license
7+
*/
8+
9+
import {Type} from '../../interface/type';
10+
import {inject} from '../injector_compatibility';
11+
import {defineInjectable, defineInjector, getInjectableDef, getInjectorDef} from '../interface/defs';
12+
13+
14+
/**
15+
* A mapping of the @angular/core API surface used in generated expressions to the actual symbols.
16+
*
17+
* This should be kept up to date with the public exports of @angular/core.
18+
*/
19+
export const angularCoreDiEnv: {[name: string]: Function} = {
20+
'defineInjectable': defineInjectable,
21+
'defineInjector': defineInjector,
22+
'inject': inject,
23+
'ɵgetFactoryOf': getFactoryOf,
24+
};
25+
26+
function getFactoryOf<T>(type: Type<any>): ((type: Type<T>| null) => T)|null {
27+
const typeAny = type as any;
28+
const def = getInjectableDef<T>(typeAny) || getInjectorDef<T>(typeAny);
29+
if (!def || def.factory === undefined) {
30+
return null;
31+
}
32+
return def.factory;
33+
}

packages/core/src/render3/jit/injectable.ts renamed to packages/core/src/di/jit/injectable.ts

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

9-
import {Injectable} from '../../di/injectable';
10-
import {NG_INJECTABLE_DEF} from '../../di/interface/defs';
11-
import {ClassSansProvider, ExistingSansProvider, FactorySansProvider, ValueProvider, ValueSansProvider} from '../../di/interface/provider';
9+
import {R3InjectableMetadataFacade, getCompilerFacade} from '../../compiler/compiler_facade';
1210
import {Type} from '../../interface/type';
1311
import {getClosureSafeProperty} from '../../util/property';
12+
import {Injectable} from '../injectable';
13+
import {NG_INJECTABLE_DEF} from '../interface/defs';
14+
import {ClassSansProvider, ExistingSansProvider, FactorySansProvider, ValueProvider, ValueSansProvider} from '../interface/provider';
1415

15-
import {R3InjectableMetadataFacade, getCompilerFacade} from './compiler_facade';
16-
import {angularCoreEnv} from './environment';
16+
import {angularCoreDiEnv} from './environment';
1717
import {convertDependencies, reflectDependencies} from './util';
1818

1919

@@ -71,7 +71,7 @@ export function compileInjectable(type: Type<any>, srcMeta?: Injectable): void {
7171
throw new Error(`Unreachable state.`);
7272
}
7373
def = getCompilerFacade().compileInjectable(
74-
angularCoreEnv, `ng://${type.name}/ngInjectableDef.js`, compilerMeta);
74+
angularCoreDiEnv, `ng://${type.name}/ngInjectableDef.js`, compilerMeta);
7575
}
7676
return def;
7777
},

0 commit comments

Comments
 (0)