@@ -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