@@ -24,23 +24,26 @@ public IBackendOptions createOptionsClass() {
2424 @ Override
2525 public void compile (IOptions options ) throws KayJamLexerException , KayJamParserException , IOException {
2626 List <KayJamFile > files = KayJamFileTree .loadFilesFromPath (options .getInputDir ().toPath ());
27+ File jsOutputFile = getFile (options , "index.js" );
28+ File dtsOutputFile = getFile (options , "index.d.ts" );
29+
30+ StringBuilder jsOutput = new StringBuilder ();
31+ StringBuilder dtsOutput = new StringBuilder ();
2732 for (KayJamFile file : files ) {
2833 JSKayJamExpressionVisitor jsVisitor = new JSKayJamExpressionVisitor ();
2934 DTSKayJamExpressionVisitor dtsVisitor = new DTSKayJamExpressionVisitor ();
30- File jsOutputFile = getFile (options , "index.js" );
31- File dtsOutputFile = getFile (options , "index.d.ts" );
3235
33- String jsOutput = jsVisitor .visitKayJamFile (file );
34- String dtsOutput = dtsVisitor .visitKayJamFile (file );
36+ jsOutput .append (jsVisitor .visitKayJamFile (file ));
37+ dtsOutput .append (dtsVisitor .visitKayJamFile (file ));
38+ }
3539
36- FileOutputStream fos = new FileOutputStream (jsOutputFile );
37- fos .write (jsOutput .getBytes ());
38- fos .close ();
40+ FileOutputStream fos = new FileOutputStream (jsOutputFile );
41+ fos .write (jsOutput . toString () .getBytes ());
42+ fos .close ();
3943
40- fos = new FileOutputStream (dtsOutputFile );
41- fos .write (dtsOutput .getBytes ());
42- fos .close ();
43- }
44+ fos = new FileOutputStream (dtsOutputFile );
45+ fos .write (dtsOutput .toString ().getBytes ());
46+ fos .close ();
4447 }
4548
4649 private static File getFile (IOptions options , String file ) throws IOException {
0 commit comments