summaryrefslogtreecommitdiff
path: root/scalajslib/src
diff options
context:
space:
mode:
authorRobby <robby@santoslab.org>2018-03-05 04:06:01 -0600
committerNikolay Tatarinov <5min4eq.unity@gmail.com>2018-03-05 13:06:01 +0300
commit122122729d8567e389f434cfb1c074d3119b0088 (patch)
treeda1f5a10a04e396b1833893a4efd66bdc140d4a0 /scalajslib/src
parent63368609f008bc46626210fb0aad284196e2b43f (diff)
downloadmill-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.scala11
-rw-r--r--scalajslib/src/mill/scalajslib/ScalaJSBridge.scala12
-rw-r--r--scalajslib/src/mill/scalajslib/ScalaJSModule.scala4
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
)