diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-03-19 21:05:34 -0700 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-03-19 21:05:34 -0700 |
commit | 4263195436228ab5e4e781c1b1ec3090add59e35 (patch) | |
tree | a3bf1696d1d7371caf92e30d0df8c5d3db9c45b9 /scalajslib/jsbridges | |
parent | 1c507efbc4ce13ad39a056c4c77eb280f0b224e7 (diff) | |
download | mill-4263195436228ab5e4e781c1b1ec3090add59e35.tar.gz mill-4263195436228ab5e4e781c1b1ec3090add59e35.tar.bz2 mill-4263195436228ab5e4e781c1b1ec3090add59e35.zip |
avoid showing a stack trace if the ScalaJSModule gives a linking error, since the stdout will have the necessary information for debugging anyway
Diffstat (limited to 'scalajslib/jsbridges')
-rw-r--r-- | scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala | 15 | ||||
-rw-r--r-- | scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala | 18 |
2 files changed, 28 insertions, 5 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 = { diff --git a/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala b/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala index 796fe212..534d45bf 100644 --- a/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala +++ b/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala @@ -4,15 +4,21 @@ package bridge import java.io.File +import mill.eval.Result import org.scalajs.core.tools.io._ -import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker, Semantics, ModuleKind => ScalaJSModuleKind} +import org.scalajs.core.tools.linker.{ModuleInitializer, Semantics, StandardLinker, ModuleKind => ScalaJSModuleKind} import org.scalajs.core.tools.logging.ScalaConsoleLogger import org.scalajs.jsenv.ConsoleJSConsole 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 @@ -34,7 +40,13 @@ 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(sourceIRs ++ libraryIRs, initializer.toSeq, destFile, logger) + + try { + linker.link(sourceIRs ++ libraryIRs, 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 = { |