Skip to content

Commit a674799

Browse files
committed
cleanup
1 parent 52f4ae6 commit a674799

File tree

1 file changed

+21
-43
lines changed

1 file changed

+21
-43
lines changed

internal/transformers/declarations/transform.go

Lines changed: 21 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,6 @@ type OutputPaths interface {
2727
JsFilePath() string
2828
}
2929

30-
type DeclareModifier uint8
31-
32-
const (
33-
DeclareModifierNone DeclareModifier = 0
34-
DeclareModifierEligible DeclareModifier = 1
35-
DeclareModifierEnforced DeclareModifier = 2
36-
)
37-
3830
// Used to be passed in the TransformationContext, which is now just an EmitContext
3931
type DeclarationEmitHost interface {
4032
modulespecifiers.ModuleSpecifierGenerationHost
@@ -1860,6 +1852,8 @@ func (tx *DeclarationTransformer) transformExpandoAssignment(node *ast.BinaryExp
18601852
}
18611853

18621854
name := tx.Factory().NewIdentifier(ns.Text())
1855+
tx.transformExpandoHost(name, declaration)
1856+
18631857
synthesizedNamespace := tx.Factory().NewModuleDeclaration(nil /*modifiers*/, ast.KindNamespaceKeyword, name, tx.Factory().NewModuleBlock(tx.Factory().NewNodeList([]*ast.Node{})))
18641858
synthesizedNamespace.Parent = tx.enclosingDeclaration
18651859

@@ -1899,8 +1893,6 @@ func (tx *DeclarationTransformer) transformExpandoAssignment(node *ast.BinaryExp
18991893
statements = append(statements, tx.Factory().NewExportDeclaration(nil /*modifiers*/, false /*isTypeOnly*/, namedExports, nil /*moduleSpecifier*/, nil /*attributes*/))
19001894
}
19011895

1902-
tx.transformExpandoHost(name, declaration)
1903-
19041896
flags := tx.host.GetEffectiveDeclarationFlags(tx.EmitContext().ParseNode(declaration), ast.ModifierFlagsAll)
19051897
modifierFlags := ast.ModifierFlagsAmbient
19061898

@@ -1940,41 +1932,13 @@ func (tx *DeclarationTransformer) transformExpandoHost(name *ast.Node, declarati
19401932
modifiers := tx.Factory().NewModifierList(ast.CreateModifiersFromModifierFlags(modifierFlags, tx.Factory().NewModifier))
19411933
replacement := make([]*ast.Node, 0)
19421934

1943-
var typeParameters *ast.TypeParameterList
1944-
var parameters *ast.ParameterList
1945-
var returnType *ast.Node
1946-
var asteriskToken *ast.TokenNode
1947-
19481935
if ast.IsFunctionDeclaration(declaration) {
1949-
fn := declaration.AsFunctionDeclaration()
1950-
typeParameters = tx.ensureTypeParams(fn.AsNode(), fn.TypeParameters)
1951-
parameters = tx.updateParamList(fn.AsNode(), fn.Parameters)
1952-
returnType = tx.ensureType(fn.AsNode(), false)
1953-
asteriskToken = fn.AsteriskToken
1936+
typeParameters, parameters, asteriskToken := extractExpandoHostParams(declaration)
1937+
replacement = append(replacement, tx.Factory().UpdateFunctionDeclaration(declaration.AsFunctionDeclaration(), modifiers, asteriskToken, declaration.Name(), tx.ensureTypeParams(declaration, typeParameters), tx.updateParamList(declaration, parameters), tx.ensureType(declaration, false), nil /*fullSignature*/, nil /*body*/))
19541938
} else if ast.IsVariableDeclaration(declaration) && ast.IsFunctionExpressionOrArrowFunction(declaration.Initializer()) {
1955-
if ast.IsFunctionExpression(declaration.Initializer()) {
1956-
fn := declaration.Initializer().AsFunctionExpression()
1957-
typeParameters = tx.ensureTypeParams(fn.AsNode(), fn.TypeParameters)
1958-
parameters = tx.updateParamList(fn.AsNode(), fn.Parameters)
1959-
returnType = tx.ensureType(fn.AsNode(), false)
1960-
asteriskToken = fn.AsteriskToken
1961-
} else if ast.IsArrowFunction(declaration.Initializer()) {
1962-
fn := declaration.Initializer().AsArrowFunction()
1963-
typeParameters = tx.ensureTypeParams(fn.AsNode(), fn.TypeParameters)
1964-
parameters = tx.updateParamList(fn.AsNode(), fn.Parameters)
1965-
returnType = tx.ensureType(fn.AsNode(), false)
1966-
asteriskToken = fn.AsteriskToken
1967-
} else {
1968-
return
1969-
}
1970-
} else {
1971-
return
1972-
}
1973-
1974-
if ast.IsFunctionDeclaration(declaration) {
1975-
replacement = append(replacement, tx.Factory().UpdateFunctionDeclaration(root.AsFunctionDeclaration(), modifiers, asteriskToken, root.Name(), typeParameters, parameters, returnType, nil /*fullSignature*/, nil /*body*/))
1976-
} else if ast.IsVariableDeclaration(declaration) {
1977-
replacement = append(replacement, tx.Factory().NewFunctionDeclaration(modifiers, asteriskToken, tx.Factory().NewIdentifier(name.Text()), typeParameters, parameters, returnType, nil /*fullSignature*/, nil /*body*/))
1939+
fn := declaration.Initializer()
1940+
typeParameters, parameters, asteriskToken := extractExpandoHostParams(fn)
1941+
replacement = append(replacement, tx.Factory().NewFunctionDeclaration(modifiers, asteriskToken, tx.Factory().NewIdentifier(name.Text()), tx.ensureTypeParams(fn, typeParameters), tx.updateParamList(fn, parameters), tx.ensureType(fn, false), nil /*fullSignature*/, nil /*body*/))
19781942
} else {
19791943
return
19801944
}
@@ -1986,3 +1950,17 @@ func (tx *DeclarationTransformer) transformExpandoHost(name *ast.Node, declarati
19861950
tx.expandoHosts.Add(id)
19871951
tx.lateStatementReplacementMap[id] = tx.Factory().NewSyntaxList(replacement)
19881952
}
1953+
1954+
func extractExpandoHostParams(node *ast.Node) (typeParameters *ast.TypeParameterList, parameters *ast.ParameterList, asteriskToken *ast.TokenNode) {
1955+
switch node.Kind {
1956+
case ast.KindFunctionExpression:
1957+
fn := node.AsFunctionExpression()
1958+
return fn.TypeParameters, fn.Parameters, fn.AsteriskToken
1959+
case ast.KindArrowFunction:
1960+
fn := node.AsArrowFunction()
1961+
return fn.TypeParameters, fn.Parameters, fn.AsteriskToken
1962+
default:
1963+
fn := node.AsFunctionDeclaration()
1964+
return fn.TypeParameters, fn.Parameters, fn.AsteriskToken
1965+
}
1966+
}

0 commit comments

Comments
 (0)