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/worker/1.0/src/ScalaJSWorkerImpl.scala | |
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/worker/1.0/src/ScalaJSWorkerImpl.scala')
-rw-r--r-- | scalajslib/worker/1.0/src/ScalaJSWorkerImpl.scala | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/scalajslib/worker/1.0/src/ScalaJSWorkerImpl.scala b/scalajslib/worker/1.0/src/ScalaJSWorkerImpl.scala index f40f7a6b..efff38a2 100644 --- a/scalajslib/worker/1.0/src/ScalaJSWorkerImpl.scala +++ b/scalajslib/worker/1.0/src/ScalaJSWorkerImpl.scala @@ -3,7 +3,7 @@ package scalajslib package worker import java.io.File -import mill.scalajslib.api.{ModuleKind, NodeJSConfig} +import mill.scalajslib.api.{ModuleKind, JsEnvConfig} import mill.api.Result import org.scalajs.core.tools.io._ import org.scalajs.core.tools.linker.{ModuleInitializer, Semantics, StandardLinker, ModuleKind => ScalaJSModuleKind} @@ -49,16 +49,16 @@ class ScalaJSWorkerImpl extends mill.scalajslib.api.ScalaJSWorkerApi { } } - def run(config: NodeJSConfig, linkedFile: File): Unit = { - nodeJSEnv(config) + def run(config: JsEnvConfig, linkedFile: File): Unit = { + jsEnv(config) .jsRunner(Seq(FileVirtualJSFile(linkedFile))) .run(new ScalaConsoleLogger, ConsoleJSConsole) } - def getFramework(config: NodeJSConfig, + def getFramework(config: JsEnvConfig, frameworkName: String, linkedFile: File): (() => Unit, sbt.testing.Framework) = { - val env = nodeJSEnv(config) + val env = jsEnv(config) val tconfig = TestAdapter.Config().withLogger(new ScalaConsoleLogger) val adapter = @@ -74,12 +74,30 @@ class ScalaJSWorkerImpl extends mill.scalajslib.api.ScalaJSWorkerApi { ) } - def nodeJSEnv(config: NodeJSConfig): NodeJSEnv = { - new NodeJSEnv( - NodeJSEnv.Config() - .withExecutable(config.executable) - .withArgs(config.args) - .withEnv(config.env) - .withSourceMap(config.sourceMap)) + def jsEnv(config: JsEnvConfig): org.scalajs.jsenv.ComJSEnv = config match{ + case config: JsEnvConfig.NodeJs => + new org.scalajs.jsenv.nodejs.NodeJSEnv( + org.scalajs.jsenv.nodejs.NodeJSEnv.Config() + .withExecutable(config.executable) + .withArgs(config.args) + .withEnv(config.env) + .withSourceMap(config.sourceMap) + ) + + case config: JsEnvConfig.JsDom => + new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv( + org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv.Config() + .withExecutable(config.executable) + .withArgs(config.args) + .withEnv(config.env) + ) + case config: JsEnvConfig.Phantom => + new org.scalajs.jsenv.phantomjs.PhantomJSEnv( + org.scalajs.jsenv.phantomjs.PhantomJSEnv.Config() + .withExecutable(config.executable) + .withArgs(config.args) + .withEnv(config.env) + .withAutoExit(config.autoExit) + ) } } |