feat(ngcc): enable private NgModule re-exports in ngcc on request (#33177)
This commit adapts the private NgModule re-export system (using aliasing) to ngcc. Not all ngcc compilations are compatible with these re-exports, as they assume a 1:1 correspondence between .js and .d.ts files. The primary concern here is supporting them for commonjs-only packages. PR Close #33177
This commit is contained in:

committed by
Matias Niemelä

parent
c4733c15c0
commit
e030375d9a
@ -16,6 +16,7 @@ import {ModuleWithProvidersInfo} from '../analysis/module_with_providers_analyze
|
||||
import {ExportInfo} from '../analysis/private_declarations_analyzer';
|
||||
import {RenderingFormatter, RedundantDecoratorMap} from './rendering_formatter';
|
||||
import {stripExtension} from './utils';
|
||||
import {Reexport} from '../../../src/ngtsc/imports';
|
||||
|
||||
/**
|
||||
* A RenderingFormatter that works with ECMAScript Module import and export statements.
|
||||
@ -57,6 +58,22 @@ export class EsmRenderingFormatter implements RenderingFormatter {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add plain exports to the end of the file.
|
||||
*
|
||||
* Unlike `addExports`, direct exports go directly in a .js and .d.ts file and don't get added to
|
||||
* an entrypoint.
|
||||
*/
|
||||
addDirectExports(
|
||||
output: MagicString, exports: Reexport[], importManager: ImportManager,
|
||||
file: ts.SourceFile): void {
|
||||
for (const e of exports) {
|
||||
const exportStatement = `\nexport {${e.symbolName} as ${e.asAlias}} from '${e.fromModule}';`;
|
||||
output.append(exportStatement);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the constants directly after the imports.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user