diff options
author | Robby <robby@santoslab.org> | 2018-03-05 04:06:01 -0600 |
---|---|---|
committer | Nikolay Tatarinov <5min4eq.unity@gmail.com> | 2018-03-05 13:06:01 +0300 |
commit | 122122729d8567e389f434cfb1c074d3119b0088 (patch) | |
tree | da1f5a10a04e396b1833893a4efd66bdc140d4a0 /scalajslib/src | |
parent | 63368609f008bc46626210fb0aad284196e2b43f (diff) | |
download | mill-122122729d8567e389f434cfb1c074d3119b0088.tar.gz mill-122122729d8567e389f434cfb1c074d3119b0088.tar.bz2 mill-122122729d8567e389f434cfb1c074d3119b0088.zip |
Allows users to customize Node.js (Scala.js' NodeJSEnv) in ScalaJSModule (#195)
* Adds Node.js configuration in ScalaJSModule.
* Adds Node.js configuration in ScalaJSModule test framework.
* Refactored ScalaJSBridge Node.js env creation.
* Readjusted ScalaJSBridge 0.6 formatting.
* Added Node.js config tests.
* Removed NodeJSConfig ScalaTest tests and improved log test conditions.
Diffstat (limited to 'scalajslib/src')
-rw-r--r-- | scalajslib/src/mill/scalajslib/NodeJSConfig.scala | 11 | ||||
-rw-r--r-- | scalajslib/src/mill/scalajslib/ScalaJSBridge.scala | 12 | ||||
-rw-r--r-- | scalajslib/src/mill/scalajslib/ScalaJSModule.scala | 4 |
3 files changed, 22 insertions, 5 deletions
diff --git a/scalajslib/src/mill/scalajslib/NodeJSConfig.scala b/scalajslib/src/mill/scalajslib/NodeJSConfig.scala new file mode 100644 index 00000000..de39308c --- /dev/null +++ b/scalajslib/src/mill/scalajslib/NodeJSConfig.scala @@ -0,0 +1,11 @@ +package mill.scalajslib + +object NodeJSConfig { + import upickle.default.{ReadWriter => RW, macroRW} + implicit def rw: RW[NodeJSConfig] = macroRW +} + +final case class NodeJSConfig(executable: String = "node", + args: List[String] = Nil, + env: Map[String, String] = Map.empty, + sourceMap: Boolean = true) diff --git a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala index 96b48704..e5952291 100644 --- a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala +++ b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala @@ -50,14 +50,15 @@ class ScalaJSWorker { ) } - def run(toolsClasspath: Agg[Path], linkedFile: File): Unit = { - bridge(toolsClasspath).run(linkedFile) + def run(toolsClasspath: Agg[Path], config: NodeJSConfig, linkedFile: File): Unit = { + bridge(toolsClasspath).run(config, linkedFile) } def getFramework(toolsClasspath: Agg[Path], + config: NodeJSConfig, frameworkName: String, linkedFile: File): sbt.testing.Framework = { - bridge(toolsClasspath).getFramework(frameworkName, linkedFile) + bridge(toolsClasspath).getFramework(config, frameworkName, linkedFile) } } @@ -69,9 +70,10 @@ trait ScalaJSBridge { main: String, fullOpt: Boolean): Unit - def run(linkedFile: File): Unit + def run(config: NodeJSConfig, linkedFile: File): Unit - def getFramework(frameworkName: String, + def getFramework(config: NodeJSConfig, + frameworkName: String, linkedFile: File): sbt.testing.Framework } diff --git a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala index 5a3b6526..4f932e1e 100644 --- a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala +++ b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala @@ -94,6 +94,7 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => case Right(_) => ScalaJSBridge.scalaJSBridge().run( toolsClasspath().map(_.path), + nodeJSConfig(), fastOpt().path.toIO ) Result.Success(()) @@ -156,6 +157,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => } override def platformSuffix = s"_sjs${artifactScalaJSVersion()}" + + def nodeJSConfig = T { NodeJSConfig() } } trait TestScalaJSModule extends ScalaJSModule with TestModule { @@ -183,6 +186,7 @@ trait TestScalaJSModule extends ScalaJSModule with TestModule { override def test(args: String*) = T.command { val framework = mill.scalajslib.ScalaJSBridge.scalaJSBridge().getFramework( toolsClasspath().map(_.path), + nodeJSConfig(), testFrameworks().head, fastOptTest().path.toIO ) |