UNPKG

3.7 kBTypeScriptView Raw
1/// <amd-module name="@angular/compiler-cli/src/ngtsc/translator/src/translator" />
2/**
3 * @license
4 * Copyright Google LLC All Rights Reserved.
5 *
6 * Use of this source code is governed by an MIT-style license that can be
7 * found in the LICENSE file at https://angular.io/license
8 */
9import * as o from '@angular/compiler';
10import { AstFactory } from './api/ast_factory';
11import { ImportGenerator } from './api/import_generator';
12import { Context } from './context';
13export declare type RecordWrappedNodeFn<TExpression> = (node: o.WrappedNodeExpr<TExpression>) => void;
14export interface TranslatorOptions<TExpression> {
15 downlevelTaggedTemplates?: boolean;
16 downlevelVariableDeclarations?: boolean;
17 recordWrappedNode?: RecordWrappedNodeFn<TExpression>;
18 annotateForClosureCompiler?: boolean;
19}
20export declare class ExpressionTranslatorVisitor<TStatement, TExpression> implements o.ExpressionVisitor, o.StatementVisitor {
21 private factory;
22 private imports;
23 private downlevelTaggedTemplates;
24 private downlevelVariableDeclarations;
25 private recordWrappedNode;
26 constructor(factory: AstFactory<TStatement, TExpression>, imports: ImportGenerator<TExpression>, options: TranslatorOptions<TExpression>);
27 visitDeclareVarStmt(stmt: o.DeclareVarStmt, context: Context): TStatement;
28 visitDeclareFunctionStmt(stmt: o.DeclareFunctionStmt, context: Context): TStatement;
29 visitExpressionStmt(stmt: o.ExpressionStatement, context: Context): TStatement;
30 visitReturnStmt(stmt: o.ReturnStatement, context: Context): TStatement;
31 visitIfStmt(stmt: o.IfStmt, context: Context): TStatement;
32 visitReadVarExpr(ast: o.ReadVarExpr, _context: Context): TExpression;
33 visitWriteVarExpr(expr: o.WriteVarExpr, context: Context): TExpression;
34 visitWriteKeyExpr(expr: o.WriteKeyExpr, context: Context): TExpression;
35 visitWritePropExpr(expr: o.WritePropExpr, context: Context): TExpression;
36 visitInvokeFunctionExpr(ast: o.InvokeFunctionExpr, context: Context): TExpression;
37 visitTaggedTemplateExpr(ast: o.TaggedTemplateExpr, context: Context): TExpression;
38 visitInstantiateExpr(ast: o.InstantiateExpr, context: Context): TExpression;
39 visitLiteralExpr(ast: o.LiteralExpr, _context: Context): TExpression;
40 visitLocalizedString(ast: o.LocalizedString, context: Context): TExpression;
41 private createTaggedTemplateExpression;
42 /**
43 * Translate the tagged template literal into a call that is compatible with ES5, using the
44 * imported `__makeTemplateObject` helper for ES5 formatted output.
45 */
46 private createES5TaggedTemplateFunctionCall;
47 visitExternalExpr(ast: o.ExternalExpr, _context: Context): TExpression;
48 visitConditionalExpr(ast: o.ConditionalExpr, context: Context): TExpression;
49 visitNotExpr(ast: o.NotExpr, context: Context): TExpression;
50 visitFunctionExpr(ast: o.FunctionExpr, context: Context): TExpression;
51 visitBinaryOperatorExpr(ast: o.BinaryOperatorExpr, context: Context): TExpression;
52 visitReadPropExpr(ast: o.ReadPropExpr, context: Context): TExpression;
53 visitReadKeyExpr(ast: o.ReadKeyExpr, context: Context): TExpression;
54 visitLiteralArrayExpr(ast: o.LiteralArrayExpr, context: Context): TExpression;
55 visitLiteralMapExpr(ast: o.LiteralMapExpr, context: Context): TExpression;
56 visitCommaExpr(ast: o.CommaExpr, context: Context): never;
57 visitWrappedNodeExpr(ast: o.WrappedNodeExpr<any>, _context: Context): any;
58 visitTypeofExpr(ast: o.TypeofExpr, context: Context): TExpression;
59 visitUnaryOperatorExpr(ast: o.UnaryOperatorExpr, context: Context): TExpression;
60 private visitStatements;
61 private setSourceMapRange;
62 private attachComments;
63}