summaryrefslogtreecommitdiff
path: root/scalajslib/src
diff options
context:
space:
mode:
authorLorenzo Gabriele <lorenzogabriele@email.it>2018-03-10 04:10:48 +0100
committerLi Haoyi <haoyi.sg@gmail.com>2018-03-09 19:10:48 -0800
commit3635964e18c55a66c214cd3261f4cc515a6982a0 (patch)
treeffbf703e0a4ec210c9ed57bee5b47610daa6cb6e /scalajslib/src
parent877715fbb4e00f1593520045439a8834cf054bd6 (diff)
downloadmill-3635964e18c55a66c214cd3261f4cc515a6982a0.tar.gz
mill-3635964e18c55a66c214cd3261f4cc515a6982a0.tar.bz2
mill-3635964e18c55a66c214cd3261f4cc515a6982a0.zip
ScalaJSModule: Support to switch between NoModule and CommonJSModule ModuleKinds (#212)
Diffstat (limited to 'scalajslib/src')
-rw-r--r--scalajslib/src/mill/scalajslib/ScalaJSBridge.scala15
-rw-r--r--scalajslib/src/mill/scalajslib/ScalaJSModule.scala17
2 files changed, 24 insertions, 8 deletions
diff --git a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala
index e5952291..17bcd6c7 100644
--- a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala
+++ b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala
@@ -12,6 +12,12 @@ sealed trait OptimizeMode
object FastOpt extends OptimizeMode
object FullOpt extends OptimizeMode
+sealed trait ModuleKind
+object ModuleKind{
+ object NoModule extends ModuleKind
+ object CommonJSModule extends ModuleKind
+}
+
class ScalaJSWorker {
private var scalaInstanceCache = Option.empty[(Long, ScalaJSBridge)]
@@ -40,13 +46,15 @@ class ScalaJSWorker {
libraries: Agg[Path],
dest: File,
main: Option[String],
- fullOpt: Boolean): Unit = {
+ fullOpt: Boolean,
+ moduleKind: ModuleKind): Unit = {
bridge(toolsClasspath).link(
sources.items.map(_.toIO).toArray,
libraries.items.map(_.toIO).toArray,
dest,
main.orNull,
- fullOpt
+ fullOpt,
+ moduleKind
)
}
@@ -68,7 +76,8 @@ trait ScalaJSBridge {
libraries: Array[File],
dest: File,
main: String,
- fullOpt: Boolean): Unit
+ fullOpt: Boolean,
+ moduleKind: ModuleKind): Unit
def run(config: NodeJSConfig, linkedFile: File): Unit
diff --git a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala
index 4f932e1e..dd955bc7 100644
--- a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala
+++ b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala
@@ -72,7 +72,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer =>
toolsClasspath(),
runClasspath(),
finalMainClassOpt().toOption,
- FastOpt
+ FastOpt,
+ moduleKind()
)
}
@@ -82,7 +83,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer =>
toolsClasspath(),
runClasspath(),
finalMainClassOpt().toOption,
- FullOpt
+ FullOpt,
+ moduleKind()
)
}
@@ -114,7 +116,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer =>
toolsClasspath: Agg[PathRef],
runClasspath: Agg[PathRef],
mainClass: Option[String],
- mode: OptimizeMode)(implicit ctx: Ctx.Dest): PathRef = {
+ mode: OptimizeMode,
+ moduleKind: ModuleKind)(implicit ctx: Ctx.Dest): PathRef = {
val outputPath = ctx.dest / "out.js"
mkdir(ctx.dest)
@@ -132,7 +135,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer =>
libraries,
outputPath.toIO,
mainClass,
- mode == FullOpt
+ mode == FullOpt,
+ moduleKind
)
PathRef(outputPath)
}
@@ -159,6 +163,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer =>
override def platformSuffix = s"_sjs${artifactScalaJSVersion()}"
def nodeJSConfig = T { NodeJSConfig() }
+
+ def moduleKind: T[ModuleKind] = T { ModuleKind.NoModule }
}
trait TestScalaJSModule extends ScalaJSModule with TestModule {
@@ -177,7 +183,8 @@ trait TestScalaJSModule extends ScalaJSModule with TestModule {
toolsClasspath(),
scalaJSTestDeps() ++ runClasspath(),
None,
- FastOpt
+ FastOpt,
+ moduleKind()
)
}