summaryrefslogtreecommitdiff
path: root/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
diff options
context:
space:
mode:
Diffstat (limited to 'scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala')
-rw-r--r--scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala15
1 files changed, 13 insertions, 2 deletions
diff --git a/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala b/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
index 80f84c3d..6f14db19 100644
--- a/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
+++ b/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala
@@ -4,6 +4,7 @@ package bridge
import java.io.File
+import mill.eval.Result
import org.scalajs.core.tools.io.IRFileCache.IRContainer
import org.scalajs.core.tools.io._
import org.scalajs.core.tools.jsdep.ResolvedJSDependency
@@ -14,7 +15,12 @@ import org.scalajs.jsenv.nodejs._
import org.scalajs.testadapter.TestAdapter
class ScalaJSBridge extends mill.scalajslib.ScalaJSBridge {
- def link(sources: Array[File], libraries: Array[File], dest: File, main: String, fullOpt: Boolean, moduleKind: ModuleKind): Unit = {
+ def link(sources: Array[File],
+ libraries: Array[File],
+ dest: File,
+ main: String,
+ fullOpt: Boolean,
+ moduleKind: ModuleKind) = {
val semantics = fullOpt match {
case true => Semantics.Defaults.optimized
case false => Semantics.Defaults
@@ -35,7 +41,12 @@ class ScalaJSBridge extends mill.scalajslib.ScalaJSBridge {
val destFile = AtomicWritableFileVirtualJSFile(dest)
val logger = new ScalaConsoleLogger
val initializer = Option(main).map { cls => ModuleInitializer.mainMethodWithArgs(cls, "main") }
- linker.link(sourceSJSIRs ++ jarSJSIRs, initializer.toSeq, destFile, logger)
+ try {
+ linker.link(sourceSJSIRs ++ jarSJSIRs, initializer.toSeq, destFile, logger)
+ Result.Success(dest)
+ }catch {case e: org.scalajs.core.tools.linker.LinkingException =>
+ Result.Failure(e.getMessage)
+ }
}
def run(config: NodeJSConfig, linkedFile: File): Unit = {