/
githubmirror
/
angular
Обзор
Документация
Войти
/
githubmirror
/
angular
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/compiler-cli/linker/src/file_linker/translator.ts
61 строка
2 KB
Kristiyan Kostadinov
refactor(compiler-cli): add generic for type nodes to AST factories
13 мар 2026, 20:13
13 мар 2026, 20:13
2831ff2
Код
Авторство
О чём код?
/** * @license * Copyright Google LLC 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.dev/license */ import * as o from '@angular/compiler'; import { ExpressionTranslatorVisitor, TranslatorOptions, } from '../../../src/ngtsc/translator/src/translator'; import {Context} from '../../../src/ngtsc/translator/src/context'; import {ImportGenerator} from '../../../src/ngtsc/translator/src/api/import_generator'; import {AstFactory} from '../../../src/ngtsc/translator/src/api/ast_factory'; /** * Generic translator helper class, which exposes methods for translating expressions and * statements. */ export class Translator<TStatement, TExpression, TType> { constructor(private factory: AstFactory<TStatement, TExpression, TType>) {} /** * Translate the given output AST in the context of an expression. */ translateExpression( expression: o.Expression, imports: ImportGenerator<null, TExpression>, options: TranslatorOptions<TExpression> = {}, ): TExpression { return expression.visitExpression( new ExpressionTranslatorVisitor<null, TStatement, TExpression, TType>( this.factory, imports, null, options, ), new Context(false), ); } /** * Translate the given output AST in the context of a statement. */ translateStatement( statement: o.Statement, imports: ImportGenerator<null, TExpression>, options: TranslatorOptions<TExpression> = {}, ): TStatement { return statement.visitStatement( new ExpressionTranslatorVisitor<null, TStatement, TExpression, TType>( this.factory, imports, null, options, ), new Context(true), ); } }