summaryrefslogtreecommitdiff
path: root/tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala')
-rw-r--r--tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala37
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala b/tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala
new file mode 100644
index 0000000..580c4c5
--- /dev/null
+++ b/tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala
@@ -0,0 +1,37 @@
+package scala.scalajs.tools.js.test
+
+import scala.scalajs.tools.sem.Semantics
+import scala.scalajs.tools.io._
+import scala.scalajs.tools.logging._
+import scala.scalajs.tools.classpath._
+import scala.scalajs.tools.classpath.builder._
+import scala.scalajs.tools.optimizer._
+
+import scala.scalajs.js.annotation.JSExport
+
+@JSExport("scalajs.QuickLinker")
+object QuickLinker {
+
+ /** Link a Scala.js application on Node.js */
+ @JSExport
+ def linkNode(cpEntries: String*): String = {
+ val builder = new AbstractPartialClasspathBuilder with NodeFileSystem
+ val cp = builder.build(cpEntries.toList)
+
+ val complete = cp.resolve()
+
+ val optimizer = new ScalaJSOptimizer(Semantics.Defaults.optimized)
+
+ val out = WritableMemVirtualJSFile("out.js")
+
+ import ScalaJSOptimizer._
+ val optimized = optimizer.optimizeCP(
+ Inputs(complete),
+ OutputConfig(out),
+ new ScalaConsoleLogger
+ )
+
+ out.content
+ }
+
+}