diff --git a/packages/compiler-cli/BUILD.bazel b/packages/compiler-cli/BUILD.bazel
index 97dfc0ff1f..859161c0c5 100644
--- a/packages/compiler-cli/BUILD.bazel
+++ b/packages/compiler-cli/BUILD.bazel
@@ -26,6 +26,7 @@ ts_library(
"//packages/compiler",
"//packages/compiler-cli/src/ngtsc/annotations",
"//packages/compiler-cli/src/ngtsc/diagnostics",
+ "//packages/compiler-cli/src/ngtsc/entry_point",
"//packages/compiler-cli/src/ngtsc/metadata",
"//packages/compiler-cli/src/ngtsc/shims",
"//packages/compiler-cli/src/ngtsc/switch",
diff --git a/packages/compiler-cli/src/ngtsc/entry_point/BUILD.bazel b/packages/compiler-cli/src/ngtsc/entry_point/BUILD.bazel
new file mode 100644
index 0000000000..d18b2ec729
--- /dev/null
+++ b/packages/compiler-cli/src/ngtsc/entry_point/BUILD.bazel
@@ -0,0 +1,18 @@
+package(default_visibility = ["//visibility:public"])
+
+load("//tools:defaults.bzl", "ts_library")
+
+ts_library(
+ name = "entry_point",
+ srcs = glob([
+ "index.ts",
+ "src/**/*.ts",
+ ]),
+ module_name = "@angular/compiler-cli/src/ngtsc/entry_point",
+ deps = [
+ "//packages/compiler-cli/src/ngtsc/shims",
+ "//packages/compiler-cli/src/ngtsc/util",
+ "@ngdeps//@types/node",
+ "@ngdeps//typescript",
+ ],
+)
diff --git a/packages/compiler-cli/src/ngtsc/entry_point/index.ts b/packages/compiler-cli/src/ngtsc/entry_point/index.ts
new file mode 100644
index 0000000000..128dc708a0
--- /dev/null
+++ b/packages/compiler-cli/src/ngtsc/entry_point/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 {FlatIndexGenerator} from './src/generator';
diff --git a/packages/compiler-cli/src/ngtsc/shims/src/flat_index_generator.ts b/packages/compiler-cli/src/ngtsc/entry_point/src/generator.ts
similarity index 91%
rename from packages/compiler-cli/src/ngtsc/shims/src/flat_index_generator.ts
rename to packages/compiler-cli/src/ngtsc/entry_point/src/generator.ts
index f44296b836..e961188eeb 100644
--- a/packages/compiler-cli/src/ngtsc/shims/src/flat_index_generator.ts
+++ b/packages/compiler-cli/src/ngtsc/entry_point/src/generator.ts
@@ -6,11 +6,13 @@
* found in the LICENSE file at https://angular.io/license
*/
+///
+
import * as path from 'path';
import * as ts from 'typescript';
-import {ShimGenerator} from './host';
-import {isNonDeclarationTsFile} from './util';
+import {ShimGenerator} from '../../shims';
+import {isNonDeclarationTsPath} from '../../util/src/typescript';
export class FlatIndexGenerator implements ShimGenerator {
readonly flatIndexPath: string;
@@ -28,7 +30,7 @@ export class FlatIndexGenerator implements ShimGenerator {
// If there's only one .ts file in the program, it's the entry. Otherwise, look for the shortest
// (in terms of characters in the filename) file that ends in /index.ts. The second behavior is
// deprecated; users should always explicitly specify a single .ts entrypoint.
- const tsFiles = files.filter(isNonDeclarationTsFile);
+ const tsFiles = files.filter(file => isNonDeclarationTsPath(file));
if (tsFiles.length === 1) {
return new FlatIndexGenerator(flatIndexPath, tsFiles[0], moduleName);
} else {
diff --git a/packages/compiler-cli/src/ngtsc/program.ts b/packages/compiler-cli/src/ngtsc/program.ts
index 293fdb8d5f..f6e7c95816 100644
--- a/packages/compiler-cli/src/ngtsc/program.ts
+++ b/packages/compiler-cli/src/ngtsc/program.ts
@@ -15,9 +15,10 @@ import {nocollapseHack} from '../transformers/nocollapse_hack';
import {ComponentDecoratorHandler, DirectiveDecoratorHandler, InjectableDecoratorHandler, NgModuleDecoratorHandler, NoopReferencesRegistry, PipeDecoratorHandler, ResourceLoader, SelectorScopeRegistry} from './annotations';
import {BaseDefDecoratorHandler} from './annotations/src/base_def';
+import {FlatIndexGenerator} from './entry_point';
import {TypeScriptReflectionHost} from './metadata';
import {FileResourceLoader, HostResourceLoader} from './resource_loader';
-import {FactoryGenerator, FactoryInfo, FlatIndexGenerator, GeneratedShimsHostWrapper, ShimGenerator, SummaryGenerator, generatedFactoryTransform} from './shims';
+import {FactoryGenerator, FactoryInfo, GeneratedShimsHostWrapper, ShimGenerator, SummaryGenerator, generatedFactoryTransform} from './shims';
import {ivySwitchTransform} from './switch';
import {IvyCompilation, ivyTransformFactory} from './transform';
import {TypeCheckContext, TypeCheckProgramHost} from './typecheck';
diff --git a/packages/compiler-cli/src/ngtsc/shims/index.ts b/packages/compiler-cli/src/ngtsc/shims/index.ts
index 115b80d8f9..25e731d29e 100644
--- a/packages/compiler-cli/src/ngtsc/shims/index.ts
+++ b/packages/compiler-cli/src/ngtsc/shims/index.ts
@@ -9,6 +9,5 @@
///
export {FactoryGenerator, FactoryInfo, generatedFactoryTransform} from './src/factory_generator';
-export {FlatIndexGenerator} from './src/flat_index_generator';
export {GeneratedShimsHostWrapper, ShimGenerator} from './src/host';
export {SummaryGenerator} from './src/summary_generator';
diff --git a/packages/compiler-cli/src/ngtsc/shims/src/factory_generator.ts b/packages/compiler-cli/src/ngtsc/shims/src/factory_generator.ts
index 90829bbaac..7fce35e274 100644
--- a/packages/compiler-cli/src/ngtsc/shims/src/factory_generator.ts
+++ b/packages/compiler-cli/src/ngtsc/shims/src/factory_generator.ts
@@ -10,9 +10,10 @@ import * as path from 'path';
import * as ts from 'typescript';
import {relativePathBetween} from '../../util/src/path';
+import {isNonDeclarationTsPath} from '../../util/src/typescript';
import {ShimGenerator} from './host';
-import {generatedModuleName, isNonDeclarationTsFile} from './util';
+import {generatedModuleName} from './util';
const TS_DTS_SUFFIX = /(\.d)?\.ts$/;
const STRIP_NG_FACTORY = /(.*)NgFactory$/;
@@ -87,7 +88,7 @@ export class FactoryGenerator implements ShimGenerator {
static forRootFiles(files: ReadonlyArray): FactoryGenerator {
const map = new Map();
- files.filter(sourceFile => isNonDeclarationTsFile(sourceFile))
+ files.filter(sourceFile => isNonDeclarationTsPath(sourceFile))
.forEach(sourceFile => map.set(sourceFile.replace(/\.ts$/, '.ngfactory.ts'), sourceFile));
return new FactoryGenerator(map);
}
diff --git a/packages/compiler-cli/src/ngtsc/shims/src/summary_generator.ts b/packages/compiler-cli/src/ngtsc/shims/src/summary_generator.ts
index 158f0fdba6..fe2b36461d 100644
--- a/packages/compiler-cli/src/ngtsc/shims/src/summary_generator.ts
+++ b/packages/compiler-cli/src/ngtsc/shims/src/summary_generator.ts
@@ -8,8 +8,10 @@
import * as ts from 'typescript';
+import {isNonDeclarationTsPath} from '../../util/src/typescript';
+
import {ShimGenerator} from './host';
-import {generatedModuleName, isNonDeclarationTsFile} from './util';
+import {generatedModuleName} from './util';
export class SummaryGenerator implements ShimGenerator {
private constructor(private map: Map) {}
@@ -61,7 +63,7 @@ export class SummaryGenerator implements ShimGenerator {
static forRootFiles(files: ReadonlyArray): SummaryGenerator {
const map = new Map();
- files.filter(sourceFile => isNonDeclarationTsFile(sourceFile))
+ files.filter(sourceFile => isNonDeclarationTsPath(sourceFile))
.forEach(sourceFile => map.set(sourceFile.replace(/\.ts$/, '.ngsummary.ts'), sourceFile));
return new SummaryGenerator(map);
}
diff --git a/packages/compiler-cli/src/ngtsc/shims/src/util.ts b/packages/compiler-cli/src/ngtsc/shims/src/util.ts
index d791258db6..6d76f20a10 100644
--- a/packages/compiler-cli/src/ngtsc/shims/src/util.ts
+++ b/packages/compiler-cli/src/ngtsc/shims/src/util.ts
@@ -6,16 +6,6 @@
* found in the LICENSE file at https://angular.io/license
*/
-import * as path from 'path';
-import * as ts from 'typescript';
-
-const TS_FILE = /\.tsx?$/;
-const D_TS_FILE = /\.d\.ts$/;
-
-export function isNonDeclarationTsFile(file: string): boolean {
- return TS_FILE.exec(file) !== null && D_TS_FILE.exec(file) === null;
-}
-
export function generatedModuleName(
originalModuleName: string, originalFileName: string, genSuffix: string): string {
let moduleName: string;
diff --git a/packages/compiler-cli/src/ngtsc/util/src/typescript.ts b/packages/compiler-cli/src/ngtsc/util/src/typescript.ts
new file mode 100644
index 0000000000..e557d36ae1
--- /dev/null
+++ b/packages/compiler-cli/src/ngtsc/util/src/typescript.ts
@@ -0,0 +1,18 @@
+/**
+ * @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
+ */
+
+const TS = /\.tsx?$/i;
+const D_TS = /\.d\.ts$/i;
+
+export function isDtsPath(filePath: string): boolean {
+ return D_TS.test(filePath);
+}
+
+export function isNonDeclarationTsPath(filePath: string): boolean {
+ return TS.test(filePath) && !D_TS.test(filePath);
+}