diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2019-06-13 19:05:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-13 19:05:57 +0200 |
commit | 4bbfbf95dbfc0a051837287abc0ee43bf18de4b9 (patch) | |
tree | 0126de264ba7d0be49ee462f7ed7178e29dca14c /scalajslib/api | |
parent | 07b3e0605a10ced76c953c383c2dc186c511d763 (diff) | |
download | mill-4bbfbf95dbfc0a051837287abc0ee43bf18de4b9.tar.gz mill-4bbfbf95dbfc0a051837287abc0ee43bf18de4b9.tar.bz2 mill-4bbfbf95dbfc0a051837287abc0ee43bf18de4b9.zip |
Allow configuration of JSEnv used for Scala.js tests and runs (#628)
* .
* .
* .
Diffstat (limited to 'scalajslib/api')
-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) |