(ety ExpressionType)
| 96 | } |
| 97 | |
| 98 | func (b *Bindings) ToTypescriptExpressionNode(ety ExpressionType) (*goja.Object, error) { |
| 99 | var siObj *goja.Object |
| 100 | var err error |
| 101 | |
| 102 | switch ety := ety.(type) { |
| 103 | case *LiteralKeyword: |
| 104 | siObj, err = b.LiteralKeyword(ety) |
| 105 | case *ReferenceType: |
| 106 | siObj, err = b.Reference(ety) |
| 107 | case *TupleType: |
| 108 | siObj, err = b.Tuple(ety.Length, ety.Node) |
| 109 | case *ArrayType: |
| 110 | siObj, err = b.Array(ety.Node) |
| 111 | case *UnionType: |
| 112 | siObj, err = b.Union(ety) |
| 113 | case *EnumMember: |
| 114 | siObj, err = b.EnumMember(ety) |
| 115 | case *Null: |
| 116 | siObj, err = b.Null() |
| 117 | case *VariableDeclarationList: |
| 118 | siObj, err = b.VariableDeclarationList(ety) |
| 119 | case *VariableDeclaration: |
| 120 | siObj, err = b.VariableDeclaration(ety) |
| 121 | case *LiteralType: |
| 122 | switch v := ety.Value.(type) { |
| 123 | case string: |
| 124 | siObj, err = b.StringLiteral(v) |
| 125 | case int64: |
| 126 | siObj, err = b.NumericLiteral(v) |
| 127 | case float64: |
| 128 | siObj, err = b.FloatLiteral(v) |
| 129 | case bool: |
| 130 | siObj, err = b.BooleanLiteral(0) |
| 131 | default: |
| 132 | return nil, xerrors.Errorf("unsupported literal type: %T", ety.Value) |
| 133 | } |
| 134 | case *ArrayLiteralType: |
| 135 | siObj, err = b.ArrayLiteral(ety) |
| 136 | case *OperatorNodeType: |
| 137 | siObj, err = b.OperatorNode(ety) |
| 138 | case *TypeLiteralNode: |
| 139 | siObj, err = b.TypeLiteralNode(ety) |
| 140 | case *TypeIntersection: |
| 141 | siObj, err = b.TypeIntersection(ety) |
| 142 | case *IdentifierExpression: |
| 143 | siObj, err = b.IdentifierExpression(ety) |
| 144 | case *PropertyAccessExpression: |
| 145 | siObj, err = b.PropertyAccessExpression(ety) |
| 146 | case *CallExpression: |
| 147 | siObj, err = b.CallExpression(ety) |
| 148 | case *ObjectLiteralExpression: |
| 149 | siObj, err = b.ObjectLiteralExpression(ety) |
| 150 | case *ArrowFunction: |
| 151 | siObj, err = b.ArrowFunction(ety) |
| 152 | case *TypeQuery: |
| 153 | siObj, err = b.TypeQuery(ety) |
| 154 | default: |
| 155 | return nil, xerrors.Errorf("unsupported type for field type: %T", ety) |
no test coverage detected