refactor(compiler-cli): implement BabelAstFactory
and AstHost
s (#38866)
This commit adds the `AstHost` interface, along with implementations for both Babel and TS. It also implements the Babel vesion of the `AstFactory` interface, along with a linker specific implementation of the `ImportGenerator` interface. These classes will be used by the new "ng-linker" to transform prelinked library code using a Babel plugin. PR Close #38866
This commit is contained in:

committed by
Joey Perrott

parent
1f5d7dc394
commit
7dd0db6d4f
@ -6,7 +6,7 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
export {AstFactory, BinaryOperator, LeadingComment, ObjectLiteralProperty, SourceMapLocation, SourceMapRange, TemplateElement, TemplateLiteral, UnaryOperator} from './src/api/ast_factory';
|
||||
export {AstFactory, BinaryOperator, LeadingComment, ObjectLiteralProperty, SourceMapLocation, SourceMapRange, TemplateElement, TemplateLiteral, UnaryOperator, VariableDeclarationType} from './src/api/ast_factory';
|
||||
export {Import, ImportGenerator, NamedImport} from './src/api/import_generator';
|
||||
export {ImportManager} from './src/import_manager';
|
||||
export {RecordWrappedNodeExprFn} from './src/translator';
|
||||
|
@ -21,7 +21,7 @@ export interface AstFactory<TStatement, TExpression> {
|
||||
* @param leadingComments the comments to attach.
|
||||
* @returns the node passed in as `statement` with the comments attached.
|
||||
*/
|
||||
attachComments(statement: TStatement, leadingComments?: LeadingComment[]): TStatement;
|
||||
attachComments(statement: TStatement, leadingComments: LeadingComment[]|undefined): TStatement;
|
||||
|
||||
/**
|
||||
* Create a literal array expresion (e.g. `[expr1, expr2]`).
|
||||
|
@ -235,7 +235,7 @@ export function createTemplateTail(cooked: string, raw: string): ts.TemplateTail
|
||||
* @param leadingComments The comments to attach to the statement.
|
||||
*/
|
||||
export function attachComments<T extends ts.Statement>(
|
||||
statement: T, leadingComments?: LeadingComment[]): T {
|
||||
statement: T, leadingComments: LeadingComment[]|undefined): T {
|
||||
if (leadingComments === undefined) {
|
||||
return statement;
|
||||
}
|
||||
|
Reference in New Issue
Block a user