@@ -127,7 +127,8 @@ class ExportSwift {
127
127
return nil
128
128
}
129
129
130
- let ( name, namespace) = extractNameAndNamespace ( from: node, jsAttribute: jsAttribute)
130
+ let name = node. name. text
131
+ let namespace = extractNamespace ( from: jsAttribute)
131
132
132
133
var parameters : [ Parameter ] = [ ]
133
134
for param in node. signature. parameterClause. parameters {
@@ -196,17 +197,15 @@ class ExportSwift {
196
197
return Effects ( isAsync: isAsync, isThrows: isThrows)
197
198
}
198
199
199
- private func extractNameAndNamespace(
200
- from node: FunctionDeclSyntax ,
201
- jsAttribute: AttributeSyntax
202
- ) -> ( name: String , namespace: [ String ] ? ) {
200
+ private func extractNamespace(
201
+ from jsAttribute: AttributeSyntax
202
+ ) -> [ String ] ? {
203
203
guard let arguments = jsAttribute. arguments? . as ( LabeledExprListSyntax . self) ,
204
204
let firstArg = arguments. first? . expression. as ( StringLiteralExprSyntax . self) ,
205
205
let namespaceString = firstArg. segments. first? . as ( StringSegmentSyntax . self) ? . content. text else {
206
- return ( node . name . text , nil )
206
+ return nil
207
207
}
208
- let namespaces = namespaceString. split ( separator: " . " ) . map ( String . init)
209
- return ( node. name. text, namespaces)
208
+ return namespaceString. split ( separator: " . " ) . map ( String . init)
210
209
}
211
210
212
211
override func visit( _ node: InitializerDeclSyntax ) -> SyntaxVisitorContinueKind {
@@ -241,15 +240,17 @@ class ExportSwift {
241
240
242
241
override func visit( _ node: ClassDeclSyntax ) -> SyntaxVisitorContinueKind {
243
242
let name = node. name. text
243
+
244
244
stateStack. push ( state: . classBody( name: name) )
245
245
246
- guard node. attributes. hasJSAttribute ( ) else { return . skipChildren }
247
-
246
+ guard let jsAttribute = node. attributes. firstJSAttribute else { return . skipChildren }
247
+
248
+ let namespace = extractNamespace ( from: jsAttribute)
248
249
exportedClassByName [ name] = ExportedClass (
249
250
name: name,
250
251
constructor: nil ,
251
252
methods: [ ] ,
252
- namespace: nil
253
+ namespace: namespace
253
254
)
254
255
exportedClassNames. append ( name)
255
256
return . visitChildren
0 commit comments