Skip to content

Commit b61395d

Browse files
committed
fix the parent-child issue parsing
1 parent 638c7cc commit b61395d

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

src/codegen/sdk/core/parser.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ def parse_ts_statements(self, node: TSNode, file_node_id: NodeId, ctx: CodebaseC
136136
# =====[ Type Alias Declarations ]=====
137137
elif child.type == "type_alias_declaration":
138138
if import_node := find_import_node(child):
139-
statements.append(TSImportStatement(import_node, file_node_id, ctx, parent, len(statements)))
139+
statements.append(TSImportStatement(child, file_node_id, ctx, parent, len(statements), source_node=import_node))
140140
else:
141141
statements.append(SymbolStatement(child, file_node_id, ctx, parent, len(statements)))
142142

@@ -169,7 +169,7 @@ def parse_ts_statements(self, node: TSNode, file_node_id: NodeId, ctx: CodebaseC
169169
if function_node := find_first_function_descendant(child):
170170
statements.append(SymbolStatement(child, file_node_id, ctx, parent, len(statements), function_node))
171171
elif import_node := find_import_node(child):
172-
statements.append(TSImportStatement(import_node, file_node_id, ctx, parent, len(statements)))
172+
statements.append(TSImportStatement(child, file_node_id, ctx, parent, len(statements), source_node=import_node))
173173
else:
174174
statements.append(
175175
TSAssignmentStatement.from_assignment(
@@ -180,7 +180,7 @@ def parse_ts_statements(self, node: TSNode, file_node_id: NodeId, ctx: CodebaseC
180180
statements.append(TSAttribute(child, file_node_id, ctx, parent, pos=len(statements)))
181181
elif child.type == "expression_statement":
182182
if import_node := find_import_node(child):
183-
statements.append(TSImportStatement(import_node, file_node_id, ctx, parent, pos=len(statements)))
183+
statements.append(TSImportStatement(child, file_node_id, ctx, parent, pos=len(statements), source_node=import_node))
184184
continue
185185

186186
for var in child.named_children:

src/codegen/sdk/typescript/import_resolution.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,10 @@ def from_dynamic_import_statement(cls, import_call_node: TSNode, module_node: TS
451451
return imports
452452

453453
# If import statement is a variable declaration, capture the variable scoping keyword (const, let, var, etc)
454-
statement_node = import_statement_node.parent if import_statement_node.type in ["variable_declarator", "assignment_expression"] else import_statement_node
454+
if import_statement_node.type == "lexical_declaration":
455+
statement_node = import_statement_node
456+
else:
457+
statement_node = import_statement_node.parent if import_statement_node.type in ["variable_declarator", "assignment_expression"] else import_statement_node
455458

456459
# ==== [ Named dynamic import ] ====
457460
if name_node.type == "property_identifier":

src/codegen/sdk/typescript/statements/import_statement.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ def __init__(self, ts_node: TSNode, file_node_id: NodeId, ctx: CodebaseContext,
3535
imports = []
3636
if ts_node.type == "import_statement":
3737
imports.extend(TSImport.from_import_statement(ts_node, file_node_id, ctx, self))
38-
elif ts_node.type == "call_expression":
39-
import_call_node = ts_node.child_by_field_name("function")
40-
arguments = ts_node.child_by_field_name("arguments")
38+
elif ts_node.type in ["call_expression", "lexical_declaration", "expression_statement", "type_alias_declaration"]:
39+
import_call_node = source_node.child_by_field_name("function")
40+
arguments = source_node.child_by_field_name("arguments")
4141
imports.extend(TSImport.from_dynamic_import_statement(import_call_node, arguments, file_node_id, ctx, self))
4242
elif ts_node.type == "export_statement":
4343
imports.extend(TSImport.from_export_statement(source_node, file_node_id, ctx, self))

0 commit comments

Comments
 (0)