50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package estransforms
|
|
|
|
import (
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/ast"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/printer"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/transformers"
|
|
)
|
|
|
|
func convertClassDeclarationToClassExpression(emitContext *printer.EmitContext, node *ast.ClassDeclaration) *ast.Expression {
|
|
updated := emitContext.Factory.NewClassExpression(
|
|
transformers.ExtractModifiers(emitContext, node.Modifiers(), ^ast.ModifierFlagsExportDefault),
|
|
node.Name(),
|
|
node.TypeParameters,
|
|
node.HeritageClauses,
|
|
node.Members,
|
|
)
|
|
emitContext.SetOriginal(updated, node.AsNode())
|
|
updated.Loc = node.Loc
|
|
return updated
|
|
}
|
|
|
|
func createNotNullCondition(emitContext *printer.EmitContext, left *ast.Node, right *ast.Node, invert bool) *ast.Node {
|
|
token := ast.KindExclamationEqualsEqualsToken
|
|
op := ast.KindAmpersandAmpersandToken
|
|
if invert {
|
|
token = ast.KindEqualsEqualsEqualsToken
|
|
op = ast.KindBarBarToken
|
|
}
|
|
|
|
return emitContext.Factory.NewBinaryExpression(
|
|
nil,
|
|
emitContext.Factory.NewBinaryExpression(
|
|
nil,
|
|
left,
|
|
nil,
|
|
emitContext.Factory.NewToken(token),
|
|
emitContext.Factory.NewKeywordExpression(ast.KindNullKeyword),
|
|
),
|
|
nil,
|
|
emitContext.Factory.NewToken(op),
|
|
emitContext.Factory.NewBinaryExpression(
|
|
nil,
|
|
right,
|
|
nil,
|
|
emitContext.Factory.NewToken(token),
|
|
emitContext.Factory.NewVoidZeroExpression(),
|
|
),
|
|
)
|
|
}
|