diff options
Diffstat (limited to 'examples/scala-js/tools/js/src')
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 - } - -} |