diff options
Diffstat (limited to 'scalajslib/api/src/ScalaJSWorkerApi.scala')
-rw-r--r-- | scalajslib/api/src/ScalaJSWorkerApi.scala | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/scalajslib/api/src/ScalaJSWorkerApi.scala b/scalajslib/api/src/ScalaJSWorkerApi.scala index 4e44a8df..6d06be6e 100644 --- a/scalajslib/api/src/ScalaJSWorkerApi.scala +++ b/scalajslib/api/src/ScalaJSWorkerApi.scala @@ -9,9 +9,9 @@ trait ScalaJSWorkerApi { fullOpt: Boolean, moduleKind: ModuleKind): Result[File] - def run(config: NodeJSConfig, linkedFile: File): Unit + def run(config: JsEnvConfig, linkedFile: File): Unit - def getFramework(config: NodeJSConfig, + def getFramework(config: JsEnvConfig, frameworkName: String, linkedFile: File): (() => Unit, sbt.testing.Framework) @@ -30,12 +30,27 @@ object ModuleKind{ } -object NodeJSConfig { +sealed trait JsEnvConfig +object JsEnvConfig{ + + import upickle.default.{ReadWriter => RW, macroRW} - implicit def rw: RW[NodeJSConfig] = macroRW + implicit def rwNodeJs: RW[NodeJs] = macroRW + implicit def rwJsDom: RW[JsDom] = macroRW + implicit def rwPhantom: RW[Phantom] = macroRW + implicit def rw: RW[JsEnvConfig] = macroRW + + final case class NodeJs(executable: String = "node", + args: List[String] = Nil, + env: Map[String, String] = Map.empty, + sourceMap: Boolean = true) extends JsEnvConfig + + final case class JsDom(executable: String = "node", + args: List[String] = Nil, + env: Map[String, String] = Map.empty) extends JsEnvConfig + + final case class Phantom(executable: String, + args: List[String], + env: Map[String, String], + autoExit: Boolean) extends JsEnvConfig } - -final case class NodeJSConfig(executable: String = "node", - args: List[String] = Nil, - env: Map[String, String] = Map.empty, - sourceMap: Boolean = true) |