
This lets projects like Material change ng_package "bundle index" files to non-conflicting paths Currently packages like @angular/core ship with the generated metadata in a path like 'core.js' which overwrites one of the inputs. Angular material puts the generated file in a path like 'index.js' Either way these files generated by ng_module rules have the potential to collide with inputs given by the user, which results in an error. Instead, give users the freedom to choose a different non-conflicting name. Also this refactors the ng_package rule, removing the redundant secondary_entry_points attribute. Instead, we assume that any ng_module in the deps with a module_name attribute is a secondary entry point. PR Close #22814
31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
/**
|
|
* @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 fs = require('fs');
|
|
const PKG = 'angular/packages/compiler-cli/integrationtest/bazel/ng_module';
|
|
describe('flat module index', () => {
|
|
describe('child metadata', () => {
|
|
it('should have contents', () => {
|
|
const metadata = fs.readFileSync(
|
|
require.resolve(`${PKG}/flat_module_filename.metadata.json`), {encoding: 'utf-8'});
|
|
expect(metadata).toContain('"__symbolic":"module"');
|
|
expect(metadata).toContain('"__symbolic":"reference","module":"@angular/core"');
|
|
expect(metadata).toContain('"origins":{"Child":"./child","ɵa":"./parent"}');
|
|
expect(metadata).toContain('"importAs":"some_npm_module"');
|
|
});
|
|
});
|
|
describe('child typings', () => {
|
|
it('should have contents', () => {
|
|
const dts =
|
|
fs.readFileSync(require.resolve(`${PKG}/flat_module_filename.d.ts`), {encoding: 'utf-8'});
|
|
|
|
expect(dts).toContain('export * from \'./index\';');
|
|
expect(dts).toContain('export { Parent as ɵa } from \'./parent\';');
|
|
});
|
|
});
|
|
}); |