summaryrefslogtreecommitdiff
path: root/scalajslib/test/src/ScalaJsUtils.scala
blob: 68f2f7eec21400391eca59137ce2190bff2f09ce (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package mill.scalajslib

import java.io.{FileReader, StringWriter}
import javax.script.{ScriptContext, ScriptEngineManager}

object ScalaJsUtils {
  def runJS(path: os.Path): String = {
    val engineManager = new ScriptEngineManager(null)
    val engine = engineManager.getEngineByName("nashorn")
    val console = new Console
    val bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE)
    bindings.put("console", console)
    engine.eval(new FileReader(path.toIO))
    console.out.toString
  }
}

class Console {
  val out = new StringWriter()
  def log(s: String): Unit = out.append(s)
}