diff options
Diffstat (limited to 'scalajslib/jsbridges')
-rw-r--r-- | scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala (renamed from scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSLinkerBridge.scala) | 27 | ||||
-rw-r--r-- | scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala (renamed from scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSLinkerBridge.scala) | 21 |
2 files changed, 43 insertions, 5 deletions
diff --git a/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSLinkerBridge.scala b/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala index 3ed17f16..3525e69e 100644 --- a/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSLinkerBridge.scala +++ b/scalajslib/jsbridges/0.6/src/mill/scalajslib/bridge/ScalaJSBridge.scala @@ -5,11 +5,15 @@ package bridge import java.io.File import org.scalajs.core.tools.io.IRFileCache.IRContainer -import org.scalajs.core.tools.io.{AtomicWritableFileVirtualJSFile, FileVirtualBinaryFile, FileVirtualScalaJSIRFile, VirtualJarFile} +import org.scalajs.core.tools.io._ +import org.scalajs.core.tools.jsdep.ResolvedJSDependency import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker} import org.scalajs.core.tools.logging.ScalaConsoleLogger +import org.scalajs.jsenv._ +import org.scalajs.jsenv.nodejs._ +import org.scalajs.testadapter.TestAdapter -class ScalaJSLinkerBridge extends mill.scalajslib.ScalaJSLinkerBridge{ +class ScalaJSBridge extends mill.scalajslib.ScalaJSBridge { def link(sources: Array[File], libraries: Array[File], dest: File, main: String, fullOpt: Boolean): Unit = { val config = StandardLinker.Config().withOptimizer(fullOpt) val linker = StandardLinker(config) @@ -21,4 +25,21 @@ class ScalaJSLinkerBridge extends mill.scalajslib.ScalaJSLinkerBridge{ val initializer = Option(main).map { cls => ModuleInitializer.mainMethodWithArgs(cls, "main") } linker.link(sourceSJSIRs ++ jarSJSIRs, initializer.toSeq, destFile, logger) } -}
\ No newline at end of file + + def getFramework(frameworkName: String, + linkedFile: File): sbt.testing.Framework = { + val env = new NodeJSEnv().loadLibs( + Seq(ResolvedJSDependency.minimal(new FileVirtualJSFile(linkedFile))) + ) + val jsConsole = ConsoleJSConsole + val config = TestAdapter.Config().withLogger(new ScalaConsoleLogger) + val adapter = + new TestAdapter(env, config) + + adapter + .loadFrameworks(List(List(frameworkName))) + .flatten + .headOption + .getOrElse(throw new RuntimeException("Failed to get framework")) + } +} diff --git a/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSLinkerBridge.scala b/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala index 8bd28e49..15a3d65b 100644 --- a/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSLinkerBridge.scala +++ b/scalajslib/jsbridges/1.0/src/mill/scalajslib/bridge/ScalaJSBridge.scala @@ -7,8 +7,10 @@ import java.io.File import org.scalajs.core.tools.io._ import org.scalajs.core.tools.linker.{ModuleInitializer, StandardLinker} import org.scalajs.core.tools.logging.ScalaConsoleLogger +import org.scalajs.testadapter.TestAdapter +import org.scalajs.jsenv.nodejs._ -class ScalaJSLinkerBridge extends mill.scalajslib.ScalaJSLinkerBridge{ +class ScalaJSBridge extends mill.scalajslib.ScalaJSBridge { def link(sources: Array[File], libraries: Array[File], dest: File, main: String, fullOpt: Boolean): Unit = { val config = StandardLinker.Config().withOptimizer(fullOpt) val linker = StandardLinker(config) @@ -21,4 +23,19 @@ class ScalaJSLinkerBridge extends mill.scalajslib.ScalaJSLinkerBridge{ val initializer = Option(main).map { cls => ModuleInitializer.mainMethodWithArgs(cls, "main") } linker.link(sourceIRs ++ libraryIRs, initializer.toSeq, destFile, logger) } -}
\ No newline at end of file + + def getFramework(frameworkName: String, + linkedFile: File): sbt.testing.Framework = { + val env = new NodeJSEnv() + val config = TestAdapter.Config().withLogger(new ScalaConsoleLogger) + + val adapter = + new TestAdapter(env, Seq(FileVirtualJSFile(linkedFile)), config) + + adapter + .loadFrameworks(List(List(frameworkName))) + .flatten + .headOption + .getOrElse(throw new RuntimeException("Failed to get framework")) + } +} |