summaryrefslogtreecommitdiff
path: root/scalajslib/api/src/ScalaJSWorkerApi.scala
diff options
context:
space:
mode:
Diffstat (limited to 'scalajslib/api/src/ScalaJSWorkerApi.scala')
-rw-r--r--scalajslib/api/src/ScalaJSWorkerApi.scala41
1 files changed, 41 insertions, 0 deletions
diff --git a/scalajslib/api/src/ScalaJSWorkerApi.scala b/scalajslib/api/src/ScalaJSWorkerApi.scala
new file mode 100644
index 00000000..4e44a8df
--- /dev/null
+++ b/scalajslib/api/src/ScalaJSWorkerApi.scala
@@ -0,0 +1,41 @@
+package mill.scalajslib.api
+import java.io.File
+import mill.api.Result
+trait ScalaJSWorkerApi {
+ def link(sources: Array[File],
+ libraries: Array[File],
+ dest: File,
+ main: String,
+ fullOpt: Boolean,
+ moduleKind: ModuleKind): Result[File]
+
+ def run(config: NodeJSConfig, linkedFile: File): Unit
+
+ def getFramework(config: NodeJSConfig,
+ frameworkName: String,
+ linkedFile: File): (() => Unit, sbt.testing.Framework)
+
+}
+
+
+sealed trait OptimizeMode
+
+object FastOpt extends OptimizeMode
+object FullOpt extends OptimizeMode
+
+sealed trait ModuleKind
+object ModuleKind{
+ object NoModule extends ModuleKind
+ object CommonJSModule extends ModuleKind
+}
+
+
+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)