@@ -22,49 +22,45 @@ import class Foundation.JSONDecoder
2222 let sourceFile = Parser . parse ( source : swiftSource )
2323 try exportSwift . addSourceFile ( sourceFile , " Playground.swift " )
2424 let exportResult = try exportSwift . finalize ( )
25- var importTS = ImportTS ( progress : . silent , moduleName : moduleName )
2625 let ts2swift = try createTS2Swift ( )
27- let skeletonJSONString = try ts2swift . convert ( dtsSource )
28- let decoder = JSONDecoder ( )
29- let importSkeleton = try decoder . decode (
30- ImportedFileSkeleton . self ,
31- from : skeletonJSONString . data ( using : . utf8 ) !
32- )
33- importTS . addSkeleton ( importSkeleton )
34- let importSwiftGlue = try importTS . finalize ( )
35-
26+ let importSwiftMacroDecls = try ts2swift . convert ( dtsSource )
27+ let importSwift = ImportSwiftMacros ( progress : . silent , moduleName : moduleName )
28+ let importSourceFile = Parser . parse ( source : importSwiftMacroDecls )
29+ importSwift . addSourceFile ( importSourceFile , " Playground.Macros.swift " )
30+ importSwift . addSourceFile ( sourceFile , " Playground.swift " )
31+ let importResult = try importSwift . finalize ( )
3632 let skeleton = BridgeJSSkeleton (
3733 moduleName : moduleName ,
3834 exported : exportResult . map { $0 . outputSkeleton } ,
39- imported : ImportedModuleSkeleton ( children : [ importSkeleton ] )
35+ imported : importResult . outputSkeleton
4036 )
4137 let linker = BridgeJSLink ( skeletons : [ skeleton ] , sharedMemory : false )
4238 let linked = try linker . link ( )
4339
4440 return PlayBridgeJSOutput (
4541 outputJs : linked . outputJs ,
4642 outputDts : linked . outputDts ,
47- importSwiftGlue : importSwiftGlue ?? " " ,
48- exportSwiftGlue : exportResult ? . outputSwift ?? " "
43+ importSwiftMacroDecls : importSwiftMacroDecls ,
44+ swiftGlue : ( importResult . outputSwift ?? " " ) + " \n \n " + ( exportResult ? . outputSwift ?? " " )
4945 )
5046 }
5147}
5248
5349@ JS class PlayBridgeJSOutput {
5450 let _outputJs : String
5551 let _outputDts : String
56- let _importSwiftGlue : String
57- let _exportSwiftGlue : String
52+ let _importSwiftMacroDecls : String
53+ let _swiftGlue : String
5854
59- init ( outputJs : String , outputDts : String , importSwiftGlue : String , exportSwiftGlue : String ) {
55+ init ( outputJs : String , outputDts : String , importSwiftMacroDecls : String , swiftGlue : String ) {
6056 self . _outputJs = outputJs
6157 self . _outputDts = outputDts
62- self . _importSwiftGlue = importSwiftGlue
63- self . _exportSwiftGlue = exportSwiftGlue
58+ self . _importSwiftMacroDecls = importSwiftMacroDecls
59+ self . _swiftGlue = swiftGlue
6460 }
6561
6662 @ JS func outputJs ( ) -> String { self . _outputJs }
6763 @ JS func outputDts ( ) -> String { self . _outputDts }
68- @ JS func importSwiftGlue ( ) -> String { self . _importSwiftGlue }
69- @ JS func exportSwiftGlue ( ) -> String { self . _exportSwiftGlue }
64+ @ JS func importSwiftMacroDecls ( ) -> String { self . _importSwiftMacroDecls }
65+ @ JS func swiftGlue ( ) -> String { self . _swiftGlue }
7066}
0 commit comments