From 4c615f7de7d6dfa2441476c5285e30bf8ab3c161 Mon Sep 17 00:00:00 2001 From: Alex Rickabaugh Date: Fri, 21 Sep 2018 12:15:06 -0700 Subject: [PATCH] refactor(ivy): move the expr/stmt translator to a separate target (#26203) Template type-checking will make use of expression and statement translation as well as the ImportManager, so this code needs to live in a separate build target which can be depended on by both the main ngtsc transform as well as the template type-checking mechanism. This refactor introduces a separate build target for that code. PR Close #26203 --- packages/compiler-cli/src/ngcc/BUILD.bazel | 1 + .../src/ngcc/src/rendering/renderer.ts | 2 +- .../compiler-cli/src/ngtsc/transform/BUILD.bazel | 1 + packages/compiler-cli/src/ngtsc/transform/index.ts | 1 - .../src/ngtsc/transform/src/declaration.ts | 3 ++- .../src/ngtsc/transform/src/transform.ts | 2 +- .../compiler-cli/src/ngtsc/translator/BUILD.bazel | 14 ++++++++++++++ .../compiler-cli/src/ngtsc/translator/index.ts | 9 +++++++++ .../{transform => translator}/src/translator.ts | 0 9 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 packages/compiler-cli/src/ngtsc/translator/BUILD.bazel create mode 100644 packages/compiler-cli/src/ngtsc/translator/index.ts rename packages/compiler-cli/src/ngtsc/{transform => translator}/src/translator.ts (100%) diff --git a/packages/compiler-cli/src/ngcc/BUILD.bazel b/packages/compiler-cli/src/ngcc/BUILD.bazel index 4281593b00..cba7f3955c 100644 --- a/packages/compiler-cli/src/ngcc/BUILD.bazel +++ b/packages/compiler-cli/src/ngcc/BUILD.bazel @@ -16,5 +16,6 @@ ts_library( "//packages/compiler-cli/src/ngtsc/host", "//packages/compiler-cli/src/ngtsc/metadata", "//packages/compiler-cli/src/ngtsc/transform", + "//packages/compiler-cli/src/ngtsc/translator", ], ) diff --git a/packages/compiler-cli/src/ngcc/src/rendering/renderer.ts b/packages/compiler-cli/src/ngcc/src/rendering/renderer.ts index ab05c92283..a1aad751dd 100644 --- a/packages/compiler-cli/src/ngcc/src/rendering/renderer.ts +++ b/packages/compiler-cli/src/ngcc/src/rendering/renderer.ts @@ -14,7 +14,7 @@ import {SourceMapConsumer, SourceMapGenerator, RawSourceMap} from 'source-map'; import * as ts from 'typescript'; import {Decorator} from '../../../ngtsc/host'; -import {ImportManager, translateStatement} from '../../../ngtsc/transform'; +import {ImportManager, translateStatement} from '../../../ngtsc/translator'; import {AnalyzedClass, AnalyzedFile} from '../analyzer'; import {IMPORT_PREFIX} from '../constants'; import {NgccReflectionHost} from '../host/ngcc_host'; diff --git a/packages/compiler-cli/src/ngtsc/transform/BUILD.bazel b/packages/compiler-cli/src/ngtsc/transform/BUILD.bazel index 8456597f7a..74a7ef8b0c 100644 --- a/packages/compiler-cli/src/ngtsc/transform/BUILD.bazel +++ b/packages/compiler-cli/src/ngtsc/transform/BUILD.bazel @@ -14,6 +14,7 @@ ts_library( "//packages/compiler-cli/src/ngtsc/diagnostics", "//packages/compiler-cli/src/ngtsc/host", "//packages/compiler-cli/src/ngtsc/metadata", + "//packages/compiler-cli/src/ngtsc/translator", "//packages/compiler-cli/src/ngtsc/util", ], ) diff --git a/packages/compiler-cli/src/ngtsc/transform/index.ts b/packages/compiler-cli/src/ngtsc/transform/index.ts index 30cde5930b..d1cd4ded2a 100644 --- a/packages/compiler-cli/src/ngtsc/transform/index.ts +++ b/packages/compiler-cli/src/ngtsc/transform/index.ts @@ -10,4 +10,3 @@ export * from './src/api'; export {IvyCompilation} from './src/compilation'; export {DtsFileTransformer} from './src/declaration'; export {ivyTransformFactory} from './src/transform'; -export {ImportManager, translateStatement} from './src/translator'; diff --git a/packages/compiler-cli/src/ngtsc/transform/src/declaration.ts b/packages/compiler-cli/src/ngtsc/transform/src/declaration.ts index dec8eb96f2..4e009b9969 100644 --- a/packages/compiler-cli/src/ngtsc/transform/src/declaration.ts +++ b/packages/compiler-cli/src/ngtsc/transform/src/declaration.ts @@ -8,8 +8,9 @@ import * as ts from 'typescript'; +import {ImportManager, translateType} from '../../translator'; + import {CompileResult} from './api'; -import {ImportManager, translateType} from './translator'; diff --git a/packages/compiler-cli/src/ngtsc/transform/src/transform.ts b/packages/compiler-cli/src/ngtsc/transform/src/transform.ts index 429ba92b44..267eeff035 100644 --- a/packages/compiler-cli/src/ngtsc/transform/src/transform.ts +++ b/packages/compiler-cli/src/ngtsc/transform/src/transform.ts @@ -10,12 +10,12 @@ import {ConstantPool} from '@angular/compiler'; import * as ts from 'typescript'; import {Decorator, ReflectionHost} from '../../host'; +import {ImportManager, translateExpression, translateStatement} from '../../translator'; import {relativePathBetween} from '../../util/src/path'; import {VisitListEntryResult, Visitor, visit} from '../../util/src/visitor'; import {CompileResult} from './api'; import {IvyCompilation} from './compilation'; -import {ImportManager, translateExpression, translateStatement} from './translator'; const NO_DECORATORS = new Set(); diff --git a/packages/compiler-cli/src/ngtsc/translator/BUILD.bazel b/packages/compiler-cli/src/ngtsc/translator/BUILD.bazel new file mode 100644 index 0000000000..ae70eb134d --- /dev/null +++ b/packages/compiler-cli/src/ngtsc/translator/BUILD.bazel @@ -0,0 +1,14 @@ +package(default_visibility = ["//visibility:public"]) + +load("//tools:defaults.bzl", "ts_library") + +ts_library( + name = "translator", + srcs = glob(["**/*.ts"]), + module_name = "@angular/compiler-cli/src/ngtsc/translator", + deps = [ + "//packages:types", + "//packages/compiler", + "//packages/compiler-cli/src/ngtsc/util", + ], +) diff --git a/packages/compiler-cli/src/ngtsc/translator/index.ts b/packages/compiler-cli/src/ngtsc/translator/index.ts new file mode 100644 index 0000000000..b71e3e7900 --- /dev/null +++ b/packages/compiler-cli/src/ngtsc/translator/index.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export {ImportManager, translateExpression, translateStatement, translateType} from './src/translator'; diff --git a/packages/compiler-cli/src/ngtsc/transform/src/translator.ts b/packages/compiler-cli/src/ngtsc/translator/src/translator.ts similarity index 100% rename from packages/compiler-cli/src/ngtsc/transform/src/translator.ts rename to packages/compiler-cli/src/ngtsc/translator/src/translator.ts