From e9438598436b54e7a45ed5f5b8c34819d6c831c9 Mon Sep 17 00:00:00 2001 From: Pete Bacon Darwin Date: Sat, 25 May 2019 17:46:07 +0100 Subject: [PATCH] refactor(ivy): ngcc - expose the `entryPoint` from the `EntryPointBundle` interface (#30591) This will allow users of the `EntryPointBundle` to use some of the `EntryPoint` properties without us having to pass them around one by one. PR Close #30591 --- .../ngcc/src/packages/entry_point_bundle.ts | 3 ++- .../module_with_providers_analyzer_spec.ts | 2 +- .../private_declarations_analyzer_spec.ts | 3 ++- .../compiler-cli/ngcc/test/helpers/utils.ts | 27 ++++++++++++++++--- .../commonjs_rendering_formatter_spec.ts | 3 ++- .../ngcc/test/rendering/dts_renderer_spec.ts | 3 ++- .../esm5_rendering_formatter_spec.ts | 2 +- .../rendering/esm_rendering_formatter_spec.ts | 3 ++- .../ngcc/test/rendering/renderer_spec.ts | 3 ++- .../rendering/umd_rendering_formatter_spec.ts | 2 +- 10 files changed, 38 insertions(+), 13 deletions(-) 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 363a644702..37cc5c5464 100644 --- a/packages/compiler-cli/ngcc/src/packages/entry_point_bundle.ts +++ b/packages/compiler-cli/ngcc/src/packages/entry_point_bundle.ts @@ -18,6 +18,7 @@ import {NgccSourcesCompilerHost} from './ngcc_compiler_host'; * format of a package entry-point. */ export interface EntryPointBundle { + entryPoint: EntryPoint; formatProperty: EntryPointJsonProperty; format: EntryPointFormat; isCore: boolean; @@ -60,5 +61,5 @@ export function makeEntryPointBundle( null; const isFlatCore = isCore && src.r3SymbolsFile === null; - return {format, formatProperty, rootDirs, isCore, isFlatCore, src, dts}; + return {entryPoint, format, formatProperty, rootDirs, isCore, isFlatCore, src, dts}; } diff --git a/packages/compiler-cli/ngcc/test/analysis/module_with_providers_analyzer_spec.ts b/packages/compiler-cli/ngcc/test/analysis/module_with_providers_analyzer_spec.ts index 88d19f4aad..e50396ae77 100644 --- a/packages/compiler-cli/ngcc/test/analysis/module_with_providers_analyzer_spec.ts +++ b/packages/compiler-cli/ngcc/test/analysis/module_with_providers_analyzer_spec.ts @@ -330,7 +330,7 @@ runInEachFileSystem(() => { loadTestFiles(TEST_PROGRAM); loadTestFiles(TEST_DTS_PROGRAM); const bundle = makeTestEntryPointBundle( - 'esm2015', 'esm2015', false, getRootFiles(TEST_PROGRAM), + 'test-package', 'esm2015', 'esm2015', false, getRootFiles(TEST_PROGRAM), getRootFiles(TEST_DTS_PROGRAM)); program = bundle.src.program; dtsProgram = bundle.dts; diff --git a/packages/compiler-cli/ngcc/test/analysis/private_declarations_analyzer_spec.ts b/packages/compiler-cli/ngcc/test/analysis/private_declarations_analyzer_spec.ts index 4a408cf372..599110dca7 100644 --- a/packages/compiler-cli/ngcc/test/analysis/private_declarations_analyzer_spec.ts +++ b/packages/compiler-cli/ngcc/test/analysis/private_declarations_analyzer_spec.ts @@ -225,7 +225,8 @@ runInEachFileSystem(() => { loadTestFiles(jsProgram); loadTestFiles(dtsProgram); const {src: {program}, dts} = makeTestEntryPointBundle( - 'esm2015', 'esm2015', false, getRootFiles(jsProgram), getRootFiles(dtsProgram)); + 'test-package', 'esm2015', 'esm2015', false, getRootFiles(jsProgram), + getRootFiles(dtsProgram)); const host = new Esm2015ReflectionHost(new MockLogger(), false, program.getTypeChecker(), dts); const referencesRegistry = new NgccReferencesRegistry(host); const analyzer = new PrivateDeclarationsAnalyzer(host, referencesRegistry); diff --git a/packages/compiler-cli/ngcc/test/helpers/utils.ts b/packages/compiler-cli/ngcc/test/helpers/utils.ts index e025a43ad1..0c34fa6169 100644 --- a/packages/compiler-cli/ngcc/test/helpers/utils.ts +++ b/packages/compiler-cli/ngcc/test/helpers/utils.ts @@ -8,10 +8,22 @@ import {AbsoluteFsPath, NgtscCompilerHost, absoluteFrom, getFileSystem} from '../../../src/ngtsc/file_system'; import {TestFile} from '../../../src/ngtsc/file_system/testing'; import {BundleProgram, makeBundleProgram} from '../../src/packages/bundle_program'; -import {EntryPointFormat, EntryPointJsonProperty} from '../../src/packages/entry_point'; +import {EntryPoint, EntryPointFormat, EntryPointJsonProperty} from '../../src/packages/entry_point'; import {EntryPointBundle} from '../../src/packages/entry_point_bundle'; import {NgccSourcesCompilerHost} from '../../src/packages/ngcc_compiler_host'; +export function makeTestEntryPoint( + entryPointName: string, packageName: string = entryPointName): EntryPoint { + return { + name: entryPointName, + packageJson: {name: entryPointName}, + package: absoluteFrom(`/node_modules/${packageName}`), + path: absoluteFrom(`/node_modules/${entryPointName}`), + typings: absoluteFrom(`/node_modules/${entryPointName}/index.d.ts`), + compiledByAngular: true, + }; +} + /** * * @param format The format of the bundle. @@ -19,12 +31,19 @@ import {NgccSourcesCompilerHost} from '../../src/packages/ngcc_compiler_host'; * @param dtsFiles The typings files to include the bundle. */ export function makeTestEntryPointBundle( - formatProperty: EntryPointJsonProperty, format: EntryPointFormat, isCore: boolean, - srcRootNames: AbsoluteFsPath[], dtsRootNames?: AbsoluteFsPath[]): EntryPointBundle { + packageName: string, formatProperty: EntryPointJsonProperty, format: EntryPointFormat, + isCore: boolean, srcRootNames: AbsoluteFsPath[], + dtsRootNames?: AbsoluteFsPath[]): EntryPointBundle { + const entryPoint = makeTestEntryPoint(packageName); const src = makeTestBundleProgram(srcRootNames[0], isCore); const dts = dtsRootNames ? makeTestDtsBundleProgram(dtsRootNames[0], isCore) : null; const isFlatCore = isCore && src.r3SymbolsFile === null; - return {formatProperty, format, rootDirs: [absoluteFrom('/')], src, dts, isCore, isFlatCore}; + return { + entryPoint, + formatProperty, + format, + rootDirs: [absoluteFrom('/')], src, dts, isCore, isFlatCore + }; } export function makeTestBundleProgram( diff --git a/packages/compiler-cli/ngcc/test/rendering/commonjs_rendering_formatter_spec.ts b/packages/compiler-cli/ngcc/test/rendering/commonjs_rendering_formatter_spec.ts index 196cf395cd..d299a7640c 100644 --- a/packages/compiler-cli/ngcc/test/rendering/commonjs_rendering_formatter_spec.ts +++ b/packages/compiler-cli/ngcc/test/rendering/commonjs_rendering_formatter_spec.ts @@ -149,7 +149,8 @@ exports.D = D; loadTestFiles([file]); const fs = getFileSystem(); const logger = new MockLogger(); - const bundle = makeTestEntryPointBundle('module', 'commonjs', false, [file.name]); + const bundle = + makeTestEntryPointBundle('test-package', 'module', 'commonjs', false, [file.name]); const typeChecker = bundle.src.program.getTypeChecker(); const host = new CommonJsReflectionHost(logger, false, bundle.src.program, bundle.src.host); const referencesRegistry = new NgccReferencesRegistry(host); diff --git a/packages/compiler-cli/ngcc/test/rendering/dts_renderer_spec.ts b/packages/compiler-cli/ngcc/test/rendering/dts_renderer_spec.ts index ef3f893b38..235972906e 100644 --- a/packages/compiler-cli/ngcc/test/rendering/dts_renderer_spec.ts +++ b/packages/compiler-cli/ngcc/test/rendering/dts_renderer_spec.ts @@ -60,7 +60,8 @@ function createTestRenderer( const fs = getFileSystem(); const isCore = packageName === '@angular/core'; const bundle = makeTestEntryPointBundle( - 'es2015', 'esm2015', isCore, getRootFiles(files), dtsFiles && getRootFiles(dtsFiles)); + 'test-package', 'es2015', 'esm2015', isCore, getRootFiles(files), + dtsFiles && getRootFiles(dtsFiles)); const typeChecker = bundle.src.program.getTypeChecker(); const host = new Esm2015ReflectionHost(logger, isCore, typeChecker, bundle.dts); const referencesRegistry = new NgccReferencesRegistry(host); diff --git a/packages/compiler-cli/ngcc/test/rendering/esm5_rendering_formatter_spec.ts b/packages/compiler-cli/ngcc/test/rendering/esm5_rendering_formatter_spec.ts index 7be8524748..fe310c5db9 100644 --- a/packages/compiler-cli/ngcc/test/rendering/esm5_rendering_formatter_spec.ts +++ b/packages/compiler-cli/ngcc/test/rendering/esm5_rendering_formatter_spec.ts @@ -26,7 +26,7 @@ function setup(file: {name: AbsoluteFsPath, contents: string}) { loadTestFiles([file]); const fs = getFileSystem(); const logger = new MockLogger(); - const bundle = makeTestEntryPointBundle('module', 'esm5', false, [file.name]); + const bundle = makeTestEntryPointBundle('test-package', 'module', 'esm5', false, [file.name]); const typeChecker = bundle.src.program.getTypeChecker(); const host = new Esm5ReflectionHost(logger, false, typeChecker); const referencesRegistry = new NgccReferencesRegistry(host); diff --git a/packages/compiler-cli/ngcc/test/rendering/esm_rendering_formatter_spec.ts b/packages/compiler-cli/ngcc/test/rendering/esm_rendering_formatter_spec.ts index d6ad64afb6..2534811f04 100644 --- a/packages/compiler-cli/ngcc/test/rendering/esm_rendering_formatter_spec.ts +++ b/packages/compiler-cli/ngcc/test/rendering/esm_rendering_formatter_spec.ts @@ -30,7 +30,8 @@ function setup(files: TestFile[], dtsFiles?: TestFile[]) { const fs = getFileSystem(); const logger = new MockLogger(); const bundle = makeTestEntryPointBundle( - 'es2015', 'esm2015', false, getRootFiles(files), dtsFiles && getRootFiles(dtsFiles)) !; + 'test-package', 'es2015', 'esm2015', false, getRootFiles(files), + dtsFiles && getRootFiles(dtsFiles)) !; const typeChecker = bundle.src.program.getTypeChecker(); const host = new Esm2015ReflectionHost(logger, false, typeChecker, bundle.dts); const referencesRegistry = new NgccReferencesRegistry(host); diff --git a/packages/compiler-cli/ngcc/test/rendering/renderer_spec.ts b/packages/compiler-cli/ngcc/test/rendering/renderer_spec.ts index 6ea93a4ac0..63d92b9a84 100644 --- a/packages/compiler-cli/ngcc/test/rendering/renderer_spec.ts +++ b/packages/compiler-cli/ngcc/test/rendering/renderer_spec.ts @@ -62,7 +62,8 @@ function createTestRenderer( const fs = getFileSystem(); const isCore = packageName === '@angular/core'; const bundle = makeTestEntryPointBundle( - 'es2015', 'esm2015', isCore, getRootFiles(files), dtsFiles && getRootFiles(dtsFiles)); + 'test-package', 'es2015', 'esm2015', isCore, getRootFiles(files), + dtsFiles && getRootFiles(dtsFiles)); const typeChecker = bundle.src.program.getTypeChecker(); const host = new Esm2015ReflectionHost(logger, isCore, typeChecker, bundle.dts); const referencesRegistry = new NgccReferencesRegistry(host); diff --git a/packages/compiler-cli/ngcc/test/rendering/umd_rendering_formatter_spec.ts b/packages/compiler-cli/ngcc/test/rendering/umd_rendering_formatter_spec.ts index 42f4c818b1..2a96bc7ef5 100644 --- a/packages/compiler-cli/ngcc/test/rendering/umd_rendering_formatter_spec.ts +++ b/packages/compiler-cli/ngcc/test/rendering/umd_rendering_formatter_spec.ts @@ -25,7 +25,7 @@ function setup(file: TestFile) { loadTestFiles([file]); const fs = getFileSystem(); const logger = new MockLogger(); - const bundle = makeTestEntryPointBundle('esm5', 'esm5', false, [file.name]); + const bundle = makeTestEntryPointBundle('test-package', 'esm5', 'esm5', false, [file.name]); const src = bundle.src; const typeChecker = src.program.getTypeChecker(); const host = new UmdReflectionHost(logger, false, src.program, src.host);