diff options
Diffstat (limited to 'scalajslib/worker')
-rw-r--r-- | scalajslib/worker/0.6/src/ScalaJSWorkerImpl.scala | 43 | ||||
-rw-r--r-- | scalajslib/worker/1.0/src/ScalaJSWorkerImpl.scala | 42 |
2 files changed, 60 insertions, 25 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) + ) } } 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) + ) } } |