diff --git a/packages/compiler-cli/ngcc/index.ts b/packages/compiler-cli/ngcc/index.ts index c508021afc..13c0268d3e 100644 --- a/packages/compiler-cli/ngcc/index.ts +++ b/packages/compiler-cli/ngcc/index.ts @@ -12,7 +12,8 @@ import {AsyncNgccOptions, NgccOptions, SyncNgccOptions} from './src/ngcc_options export {ConsoleLogger} from './src/logging/console_logger'; export {Logger, LogLevel} from './src/logging/logger'; -export {AsyncNgccOptions, NgccOptions, PathMappings, SyncNgccOptions} from './src/ngcc_options'; +export {AsyncNgccOptions, NgccOptions, SyncNgccOptions} from './src/ngcc_options'; +export {PathMappings} from './src/path_mappings'; export function process(options: AsyncNgccOptions): Promise; export function process(options: SyncNgccOptions): void; diff --git a/packages/compiler-cli/ngcc/src/dependencies/dts_dependency_host.ts b/packages/compiler-cli/ngcc/src/dependencies/dts_dependency_host.ts index 7eef7f3a38..2d4e076fe6 100644 --- a/packages/compiler-cli/ngcc/src/dependencies/dts_dependency_host.ts +++ b/packages/compiler-cli/ngcc/src/dependencies/dts_dependency_host.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ import {AbsoluteFsPath, FileSystem} from '../../../src/ngtsc/file_system'; -import {PathMappings} from '../ngcc_options'; +import {PathMappings} from '../path_mappings'; import {EsmDependencyHost} from './esm_dependency_host'; import {ModuleResolver} from './module_resolver'; diff --git a/packages/compiler-cli/ngcc/src/dependencies/module_resolver.ts b/packages/compiler-cli/ngcc/src/dependencies/module_resolver.ts index 4409ece280..fa360498c0 100644 --- a/packages/compiler-cli/ngcc/src/dependencies/module_resolver.ts +++ b/packages/compiler-cli/ngcc/src/dependencies/module_resolver.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ import {absoluteFrom, AbsoluteFsPath, dirname, FileSystem, isRoot, join, resolve} from '../../../src/ngtsc/file_system'; -import {PathMappings} from '../ngcc_options'; +import {PathMappings} from '../path_mappings'; import {isRelativePath, resolveFileWithPostfixes} from '../utils'; /** diff --git a/packages/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.ts b/packages/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.ts index 8ac19b1495..a0047c1cf2 100644 --- a/packages/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.ts +++ b/packages/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.ts @@ -9,10 +9,10 @@ import {AbsoluteFsPath, FileSystem, PathSegment} from '../../../src/ngtsc/file_s import {EntryPointWithDependencies} from '../dependencies/dependency_host'; import {DependencyResolver, SortedEntryPointsInfo} from '../dependencies/dependency_resolver'; import {Logger} from '../logging/logger'; -import {PathMappings} from '../ngcc_options'; import {NgccConfiguration} from '../packages/configuration'; import {getEntryPointInfo, INCOMPATIBLE_ENTRY_POINT, NO_ENTRY_POINT} from '../packages/entry_point'; import {EntryPointManifest} from '../packages/entry_point_manifest'; +import {PathMappings} from '../path_mappings'; import {NGCC_DIRECTORY} from '../writing/new_entry_point_file_writer'; import {EntryPointFinder} from './interface'; diff --git a/packages/compiler-cli/ngcc/src/entry_point_finder/targeted_entry_point_finder.ts b/packages/compiler-cli/ngcc/src/entry_point_finder/targeted_entry_point_finder.ts index abd5c2f1a9..91409f2c9a 100644 --- a/packages/compiler-cli/ngcc/src/entry_point_finder/targeted_entry_point_finder.ts +++ b/packages/compiler-cli/ngcc/src/entry_point_finder/targeted_entry_point_finder.ts @@ -9,10 +9,10 @@ import {AbsoluteFsPath, FileSystem, join, PathSegment, relative, relativeFrom} f import {EntryPointWithDependencies} from '../dependencies/dependency_host'; import {DependencyResolver, SortedEntryPointsInfo} from '../dependencies/dependency_resolver'; import {Logger} from '../logging/logger'; -import {PathMappings} from '../ngcc_options'; import {hasBeenProcessed} from '../packages/build_marker'; import {NgccConfiguration} from '../packages/configuration'; import {EntryPoint, EntryPointJsonProperty, getEntryPointInfo, INCOMPATIBLE_ENTRY_POINT, NO_ENTRY_POINT} from '../packages/entry_point'; +import {PathMappings} from '../path_mappings'; import {EntryPointFinder} from './interface'; import {getBasePaths} from './utils'; diff --git a/packages/compiler-cli/ngcc/src/entry_point_finder/utils.ts b/packages/compiler-cli/ngcc/src/entry_point_finder/utils.ts index 9442958e66..5238845c05 100644 --- a/packages/compiler-cli/ngcc/src/entry_point_finder/utils.ts +++ b/packages/compiler-cli/ngcc/src/entry_point_finder/utils.ts @@ -7,7 +7,7 @@ */ import {AbsoluteFsPath, getFileSystem, relative, resolve} from '../../../src/ngtsc/file_system'; import {Logger} from '../logging/logger'; -import {PathMappings} from '../ngcc_options'; +import {PathMappings} from '../path_mappings'; /** * Extract all the base-paths that we need to search for entry-points. diff --git a/packages/compiler-cli/ngcc/src/execution/create_compile_function.ts b/packages/compiler-cli/ngcc/src/execution/create_compile_function.ts index 81cd664cc3..5d162182dc 100644 --- a/packages/compiler-cli/ngcc/src/execution/create_compile_function.ts +++ b/packages/compiler-cli/ngcc/src/execution/create_compile_function.ts @@ -12,9 +12,9 @@ import {replaceTsWithNgInErrors} from '../../../src/ngtsc/diagnostics'; import {FileSystem} from '../../../src/ngtsc/file_system'; import {ParsedConfiguration} from '../../../src/perform_compile'; import {Logger} from '../logging/logger'; -import {PathMappings} from '../ngcc_options'; import {getEntryPointFormat} from '../packages/entry_point'; import {makeEntryPointBundle} from '../packages/entry_point_bundle'; +import {PathMappings} from '../path_mappings'; import {FileWriter} from '../writing/file_writer'; import {CreateCompileFn} from './api'; diff --git a/packages/compiler-cli/ngcc/src/main.ts b/packages/compiler-cli/ngcc/src/main.ts index e8005edf6c..8811654e37 100644 --- a/packages/compiler-cli/ngcc/src/main.ts +++ b/packages/compiler-cli/ngcc/src/main.ts @@ -32,10 +32,11 @@ import {AsyncLocker} from './locking/async_locker'; import {LockFileWithChildProcess} from './locking/lock_file_with_child_process'; import {SyncLocker} from './locking/sync_locker'; import {Logger} from './logging/logger'; -import {AsyncNgccOptions, getSharedSetup, NgccOptions, PathMappings, SyncNgccOptions} from './ngcc_options'; +import {AsyncNgccOptions, getSharedSetup, NgccOptions, SyncNgccOptions} from './ngcc_options'; import {NgccConfiguration} from './packages/configuration'; import {EntryPointJsonProperty, SUPPORTED_FORMAT_PROPERTIES} from './packages/entry_point'; import {EntryPointManifest, InvalidatingEntryPointManifest} from './packages/entry_point_manifest'; +import {PathMappings} from './path_mappings'; import {FileWriter} from './writing/file_writer'; import {DirectPackageJsonUpdater, PackageJsonUpdater} from './writing/package_json_updater'; diff --git a/packages/compiler-cli/ngcc/src/ngcc_options.ts b/packages/compiler-cli/ngcc/src/ngcc_options.ts index 3311653474..1ada2058d2 100644 --- a/packages/compiler-cli/ngcc/src/ngcc_options.ts +++ b/packages/compiler-cli/ngcc/src/ngcc_options.ts @@ -5,12 +5,13 @@ * 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 */ -import {absoluteFrom, AbsoluteFsPath, FileSystem, getFileSystem, resolve} from '../../src/ngtsc/file_system'; +import {absoluteFrom, AbsoluteFsPath, FileSystem, getFileSystem} from '../../src/ngtsc/file_system'; import {ParsedConfiguration, readConfiguration} from '../../src/perform_compile'; import {ConsoleLogger} from './logging/console_logger'; import {Logger, LogLevel} from './logging/logger'; import {SUPPORTED_FORMAT_PROPERTIES} from './packages/entry_point'; +import {getPathMappingsFromTsConfig, PathMappings} from './path_mappings'; import {FileWriter} from './writing/file_writer'; import {InPlaceFileWriter} from './writing/in_place_file_writer'; import {NewEntryPointFileWriter} from './writing/new_entry_point_file_writer'; @@ -135,25 +136,6 @@ export type AsyncNgccOptions = Omit&{async: true}; */ export type NgccOptions = AsyncNgccOptions|SyncNgccOptions; -export type PathMappings = { - baseUrl: string, - paths: {[key: string]: string[]} -}; - -/** - * If `pathMappings` is not provided directly, then try getting it from `tsConfig`, if available. - */ -export function getPathMappingsFromTsConfig( - tsConfig: ParsedConfiguration|null, projectPath: AbsoluteFsPath): PathMappings|undefined { - if (tsConfig !== null && tsConfig.options.baseUrl !== undefined && - tsConfig.options.paths !== undefined) { - return { - baseUrl: resolve(projectPath, tsConfig.options.baseUrl), - paths: tsConfig.options.paths, - }; - } -} - export type OptionalNgccOptionKeys = 'targetEntryPointPath'|'tsConfigPath'|'pathMappings'; export type RequiredNgccOptions = Required>; export type OptionalNgccOptions = Pick; @@ -183,7 +165,7 @@ export function getSharedSetup(options: NgccOptions): SharedSetup&RequiredNgccOp compileAllFormats = true, createNewEntryPointFormats = false, logger = new ConsoleLogger(LogLevel.info), - pathMappings, + pathMappings = getPathMappingsFromTsConfig(tsConfig, projectPath), async = false, errorOnFailedEntryPoint = false, enableI18nLegacyMessageIdFormat = true, @@ -191,9 +173,7 @@ export function getSharedSetup(options: NgccOptions): SharedSetup&RequiredNgccOp tsConfigPath, } = options; - pathMappings = options.pathMappings || getPathMappingsFromTsConfig(tsConfig, projectPath); - - if (!!options.targetEntryPointPath) { + if (!!targetEntryPointPath) { // targetEntryPointPath forces us to error if an entry-point fails. errorOnFailedEntryPoint = true; } diff --git a/packages/compiler-cli/ngcc/src/packages/entry_point_bundle.ts b/packages/compiler-cli/ngcc/src/packages/entry_point_bundle.ts index 62259c1b4c..90f13de885 100644 --- a/packages/compiler-cli/ngcc/src/packages/entry_point_bundle.ts +++ b/packages/compiler-cli/ngcc/src/packages/entry_point_bundle.ts @@ -7,7 +7,7 @@ */ import * as ts from 'typescript'; import {AbsoluteFsPath, FileSystem, NgtscCompilerHost} from '../../../src/ngtsc/file_system'; -import {PathMappings} from '../ngcc_options'; +import {PathMappings} from '../path_mappings'; import {BundleProgram, makeBundleProgram} from './bundle_program'; import {EntryPoint, EntryPointFormat} from './entry_point'; import {NgccSourcesCompilerHost} from './ngcc_compiler_host'; diff --git a/packages/compiler-cli/ngcc/src/path_mappings.ts b/packages/compiler-cli/ngcc/src/path_mappings.ts new file mode 100644 index 0000000000..a1e764bc57 --- /dev/null +++ b/packages/compiler-cli/ngcc/src/path_mappings.ts @@ -0,0 +1,29 @@ +/** + * @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 + */ +import {AbsoluteFsPath, resolve} from '../../src/ngtsc/file_system'; +import {ParsedConfiguration} from '../../src/perform_compile'; + + +export type PathMappings = { + baseUrl: string, + paths: {[key: string]: string[]} +}; + +/** + * If `pathMappings` is not provided directly, then try getting it from `tsConfig`, if available. + */ +export function getPathMappingsFromTsConfig( + tsConfig: ParsedConfiguration|null, projectPath: AbsoluteFsPath): PathMappings|undefined { + if (tsConfig !== null && tsConfig.options.baseUrl !== undefined && + tsConfig.options.paths !== undefined) { + return { + baseUrl: resolve(projectPath, tsConfig.options.baseUrl), + paths: tsConfig.options.paths, + }; + } +} diff --git a/packages/compiler-cli/ngcc/test/entry_point_finder/directory_walker_entry_point_finder_spec.ts b/packages/compiler-cli/ngcc/test/entry_point_finder/directory_walker_entry_point_finder_spec.ts index aa3bdd3dc1..7f924bc1e2 100644 --- a/packages/compiler-cli/ngcc/test/entry_point_finder/directory_walker_entry_point_finder_spec.ts +++ b/packages/compiler-cli/ngcc/test/entry_point_finder/directory_walker_entry_point_finder_spec.ts @@ -13,10 +13,10 @@ import {DtsDependencyHost} from '../../src/dependencies/dts_dependency_host'; import {EsmDependencyHost} from '../../src/dependencies/esm_dependency_host'; import {ModuleResolver} from '../../src/dependencies/module_resolver'; import {DirectoryWalkerEntryPointFinder} from '../../src/entry_point_finder/directory_walker_entry_point_finder'; -import {PathMappings} from '../../src/ngcc_options'; import {NgccConfiguration} from '../../src/packages/configuration'; import {EntryPoint} from '../../src/packages/entry_point'; import {EntryPointManifest, EntryPointManifestFile} from '../../src/packages/entry_point_manifest'; +import {PathMappings} from '../../src/path_mappings'; import {MockLogger} from '../helpers/mock_logger'; runInEachFileSystem(() => { diff --git a/packages/compiler-cli/ngcc/test/entry_point_finder/targeted_entry_point_finder_spec.ts b/packages/compiler-cli/ngcc/test/entry_point_finder/targeted_entry_point_finder_spec.ts index dc9af67357..04aa7dfe72 100644 --- a/packages/compiler-cli/ngcc/test/entry_point_finder/targeted_entry_point_finder_spec.ts +++ b/packages/compiler-cli/ngcc/test/entry_point_finder/targeted_entry_point_finder_spec.ts @@ -13,10 +13,10 @@ import {DtsDependencyHost} from '../../src/dependencies/dts_dependency_host'; import {EsmDependencyHost} from '../../src/dependencies/esm_dependency_host'; import {ModuleResolver} from '../../src/dependencies/module_resolver'; import {TargetedEntryPointFinder} from '../../src/entry_point_finder/targeted_entry_point_finder'; -import {PathMappings} from '../../src/ngcc_options'; import {NGCC_VERSION} from '../../src/packages/build_marker'; import {NgccConfiguration} from '../../src/packages/configuration'; import {EntryPoint} from '../../src/packages/entry_point'; +import {PathMappings} from '../../src/path_mappings'; import {MockLogger} from '../helpers/mock_logger'; runInEachFileSystem(() => {