summaryrefslogtreecommitdiff
path: root/examples/scala-js/tools/js/src
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/tools/js/src')
-rw-r--r--examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/classpath/builder/NodeFileSystem.scala67
-rw-r--r--examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/io/NodeVirtualFiles.scala62
-rw-r--r--examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/json/Impl.scala36
-rw-r--r--examples/scala-js/tools/js/src/test/scala/scala/scalajs/tools/js/test/JasmineReporter.scala71
-rw-r--r--examples/scala-js/tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala37
5 files changed, 0 insertions, 273 deletions
diff --git a/examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/classpath/builder/NodeFileSystem.scala b/examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/classpath/builder/NodeFileSystem.scala
deleted file mode 100644
index d1eee10..0000000
--- a/examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/classpath/builder/NodeFileSystem.scala
+++ /dev/null
@@ -1,67 +0,0 @@
-package scala.scalajs.tools.classpath.builder
-
-import scala.scalajs.tools.io._
-
-import scala.scalajs.js
-
-import scala.collection.immutable.Traversable
-
-import java.io._
-
-/** FileSystem implementation using Node.js */
-trait NodeFileSystem extends FileSystem {
-
- import NodeFileSystem.fs
-
- type File = String
-
- private def stats(f: String) = fs.statSync(f)
-
- val DummyVersion: String = "DUMMY_FILE"
-
- def isDirectory(f: String): Boolean =
- stats(f).isDirectory().asInstanceOf[Boolean]
-
- def isFile(f: String): Boolean =
- stats(f).isFile().asInstanceOf[Boolean]
-
- def isJSFile(f: String): Boolean =
- isFile(f) && f.endsWith(".js")
-
- def isIRFile(f: String): Boolean =
- isFile(f) && f.endsWith(".sjsir")
-
- def isJARFile(f: String): Boolean =
- isFile(f) && f.endsWith(".jar")
-
- def exists(f: String): Boolean =
- fs.existsSync(f).asInstanceOf[Boolean]
-
- def getName(f: String): String =
- VirtualFile.nameFromPath(f)
-
- def getAbsolutePath(f: String): String =
- fs.realpathSync(f).asInstanceOf[String]
-
- def getVersion(f: String): String =
- stats(f).mtime.asInstanceOf[js.Date].getTime.toString
-
- def listFiles(d: String): Traversable[String] = {
- require(isDirectory(d))
- val prefix = if (d.endsWith("/")) d else d + "/"
-
- fs.readdirSync(d).asInstanceOf[js.Array[String]].toList.map(prefix + _)
- }
-
- def toJSFile(f: String): VirtualJSFile = new NodeVirtualJSFile(f)
- def toIRFile(f: String): VirtualScalaJSIRFile = new NodeVirtualScalaJSIRFile(f)
- def toReader(f: String): Reader =
- new NodeVirtualTextFile(f).reader
- def toInputStream(f: String): InputStream =
- new NodeVirtualBinaryFile(f).inputStream
-
-}
-
-private object NodeFileSystem {
- private val fs = js.Dynamic.global.require("fs")
-}
diff --git a/examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/io/NodeVirtualFiles.scala b/examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/io/NodeVirtualFiles.scala
deleted file mode 100644
index 6a0c3ee..0000000
--- a/examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/io/NodeVirtualFiles.scala
+++ /dev/null
@@ -1,62 +0,0 @@
-package scala.scalajs.tools.io
-
-import scala.scalajs.js
-import scala.scalajs.js.typedarray._
-
-import java.io._
-import java.net.URI
-
-class NodeVirtualFile(override val path: String) extends VirtualFile {
- import NodeFS.fs
-
- override def version: Option[String] = {
- val stat = fs.statSync(path)
- if (js.isUndefined(stat.mtime))
- None
- else
- Some(stat.mtime.asInstanceOf[js.Date].getTime.toString)
- }
-
- override def exists: Boolean =
- fs.existsSync(path).asInstanceOf[Boolean]
-
- override def toURI: URI = {
- val abspath = fs.realpathSync(path).asInstanceOf[String]
- new URI("file", abspath, null)
- }
-}
-
-class NodeVirtualTextFile(p: String) extends NodeVirtualFile(p)
- with VirtualTextFile {
- import NodeFS.fs
-
- override def content: String = {
- val options = js.Dynamic.literal(encoding = "UTF-8")
- fs.readFileSync(path, options).asInstanceOf[String]
- }
-}
-
-class NodeVirtualBinaryFile(p: String) extends NodeVirtualFile(p)
- with VirtualBinaryFile {
- import NodeFS.fs
-
- private def buf: ArrayBuffer =
- new Uint8Array(fs.readFileSync(path).asInstanceOf[js.Array[Int]]).buffer
-
- override def content: Array[Byte] = new Int8Array(buf).toArray
- override def inputStream: InputStream = new ArrayBufferInputStream(buf)
-}
-
-class NodeVirtualJSFile(p: String) extends NodeVirtualTextFile(p)
- with VirtualJSFile {
-
- /** Always returns None. We can't read them on JS anyway */
- override def sourceMap: Option[String] = None
-}
-
-class NodeVirtualScalaJSIRFile(p: String)
- extends NodeVirtualBinaryFile(p) with VirtualSerializedScalaJSIRFile
-
-private[io] object NodeFS {
- val fs = js.Dynamic.global.require("fs")
-}
diff --git a/examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/json/Impl.scala b/examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/json/Impl.scala
deleted file mode 100644
index 89c7255..0000000
--- a/examples/scala-js/tools/js/src/main/scala/scala/scalajs/tools/json/Impl.scala
+++ /dev/null
@@ -1,36 +0,0 @@
-package scala.scalajs.tools.json
-
-import scala.scalajs.tools.io.IO
-
-import scala.scalajs.js
-
-import java.io.{Writer, Reader}
-
-private[json] object Impl extends AbstractJSONImpl {
-
- type Repr = js.Any
-
- def fromString(x: String): Repr = x
- def fromNumber(x: Number): Repr = x.doubleValue()
- def fromBoolean(x: Boolean): Repr = x
- def fromList(x: List[Repr]): Repr = js.Array(x: _*)
- def fromMap(x: Map[String, Repr]): Repr = js.Dictionary(x.toSeq: _*)
-
- def toString(x: Repr): String = x.asInstanceOf[String]
- def toNumber(x: Repr): Number = x.asInstanceOf[Double]
- def toBoolean(x: Repr): Boolean = x.asInstanceOf[Boolean]
- def toList(x: Repr): List[Repr] = x.asInstanceOf[js.Array[Repr]].toList
- def toMap(x: Repr): Map[String, Repr] =
- x.asInstanceOf[js.Dictionary[Repr]].toMap
-
- def serialize(x: Repr): String = js.JSON.stringify(x)
-
- def serialize(x: Repr, writer: Writer): Unit =
- writer.write(serialize(x))
-
- def deserialize(str: String): Repr = js.JSON.parse(str)
-
- def deserialize(reader: Reader): Repr =
- deserialize(IO.readReaderToString(reader))
-
-}
diff --git a/examples/scala-js/tools/js/src/test/scala/scala/scalajs/tools/js/test/JasmineReporter.scala b/examples/scala-js/tools/js/src/test/scala/scala/scalajs/tools/js/test/JasmineReporter.scala
deleted file mode 100644
index 7b63871..0000000
--- a/examples/scala-js/tools/js/src/test/scala/scala/scalajs/tools/js/test/JasmineReporter.scala
+++ /dev/null
@@ -1,71 +0,0 @@
-package scala.scalajs.tools.js.test
-
-import org.scalajs.jasmine.Suite
-
-import org.scalajs.jasminetest._
-
-import scala.scalajs.js.annotation.JSExport
-
-import scala.scalajs.testbridge._
-
-object JSConsoleTestOutput extends TestOutput {
-
- type Color = Null
-
- val errorColor: Color = null
- val successColor: Color = null
- val infoColor: Color = null
-
- def color(message: String, color: Color): String = message
-
- def error(message: String, stack: Array[StackTraceElement]): Unit =
- withStack(message, stack)
-
- def error(message: String): Unit = println(message)
-
- def failure(message: String, stack: Array[StackTraceElement]): Unit =
- withStack(message, stack)
-
- def failure(message: String): Unit = println(message)
- def succeeded(message: String): Unit = println(message)
- def skipped(message: String): Unit = println(message)
- def pending(message: String): Unit = println(message)
- def ignored(message: String): Unit = println(message)
- def canceled(message: String): Unit = println(message)
-
- object log extends TestOutputLog {
- def info(message: String): Unit = println(message)
- def warn(message: String): Unit = println(message)
- def error(message: String): Unit = println(message)
- }
-
- private def withStack(message: String, stack: Array[StackTraceElement]) =
- println(message + stack.mkString("\n", "\n", ""))
-
-}
-
-@JSExport("scalajs.JasmineConsoleReporter")
-class JasmineConsoleReporter(throwOnFail: Boolean = false)
- extends JasmineTestReporter(JSConsoleTestOutput) {
-
- private var suiteFails: Int = 0
- private var suiteCount: Int = 0
-
- override def reportSuiteResults(suite: Suite): Unit = {
- super.reportSuiteResults(suite)
- if (suite.results().failedCount > 0)
- suiteFails += 1
- suiteCount += 1
- }
-
- override def reportRunnerResults(): Unit = {
- super.reportRunnerResults()
- val failed = suiteFails > 0
- val resStr = if (failed) "Failed" else "Passed"
- println(s"$resStr: Total $suiteCount, Failed $suiteFails")
-
- if (failed && throwOnFail)
- sys.error("Jasmine test suite failed.")
- }
-
-}
diff --git a/examples/scala-js/tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala b/examples/scala-js/tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala
deleted file mode 100644
index 580c4c5..0000000
--- a/examples/scala-js/tools/js/src/test/scala/scala/scalajs/tools/js/test/QuickLinker.scala
+++ /dev/null
@@ -1,37 +0,0 @@
-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
- }
-
-}