summaryrefslogtreecommitdiff
path: root/scalajslib/worker/0.6/src/ScalaJSWorkerImpl.scala
diff options
context:
space:
mode:
Diffstat (limited to 'scalajslib/worker/0.6/src/ScalaJSWorkerImpl.scala')
-rw-r--r--scalajslib/worker/0.6/src/ScalaJSWorkerImpl.scala43
1 files changed, 30 insertions, 13 deletions
diff --git a/scalajslib/worker/0.6/src/ScalaJSWorkerImpl.scala b/scalajslib/worker/0.6/src/ScalaJSWorkerImpl.scala
index 64b668e5..9e49ef15 100644
--- a/scalajslib/worker/0.6/src/ScalaJSWorkerImpl.scala
+++ b/scalajslib/worker/0.6/src/ScalaJSWorkerImpl.scala
@@ -11,9 +11,8 @@ import org.scalajs.core.tools.jsdep.ResolvedJSDependency
import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker, Semantics, ModuleKind => ScalaJSModuleKind}
import org.scalajs.core.tools.logging.ScalaConsoleLogger
import org.scalajs.jsenv._
-import org.scalajs.jsenv.nodejs._
import org.scalajs.testadapter.TestAdapter
-import mill.scalajslib.api.{ModuleKind, NodeJSConfig}
+import mill.scalajslib.api.{ModuleKind, JsEnvConfig}
class ScalaJSWorkerImpl extends mill.scalajslib.api.ScalaJSWorkerApi {
def link(sources: Array[File],
libraries: Array[File],
@@ -49,16 +48,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(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).loadLibs(
+ val env = jsEnv(config).loadLibs(
Seq(ResolvedJSDependency.minimal(new FileVirtualJSFile(linkedFile)))
)
@@ -76,12 +75,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): 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)
+ )
}
}