summaryrefslogtreecommitdiff
path: root/scalajslib/api/src/ScalaJSWorkerApi.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2019-06-13 19:05:57 +0200
committerGitHub <noreply@github.com>2019-06-13 19:05:57 +0200
commit4bbfbf95dbfc0a051837287abc0ee43bf18de4b9 (patch)
tree0126de264ba7d0be49ee462f7ed7178e29dca14c /scalajslib/api/src/ScalaJSWorkerApi.scala
parent07b3e0605a10ced76c953c383c2dc186c511d763 (diff)
downloadmill-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/src/ScalaJSWorkerApi.scala')
-rw-r--r--scalajslib/api/src/ScalaJSWorkerApi.scala33
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)