summaryrefslogtreecommitdiff
path: root/examples/crossBuilds/clientserver2/js
diff options
context:
space:
mode:
Diffstat (limited to 'examples/crossBuilds/clientserver2/js')
-rw-r--r--examples/crossBuilds/clientserver2/js/shared/main/scala/simple/Simple.scala7
-rw-r--r--examples/crossBuilds/clientserver2/js/shared/test/scala/simple/SimpleTest.scala13
-rw-r--r--examples/crossBuilds/clientserver2/js/src/main/scala/simple/Platform.scala34
3 files changed, 54 insertions, 0 deletions
diff --git a/examples/crossBuilds/clientserver2/js/shared/main/scala/simple/Simple.scala b/examples/crossBuilds/clientserver2/js/shared/main/scala/simple/Simple.scala
new file mode 100644
index 0000000..d3b0278
--- /dev/null
+++ b/examples/crossBuilds/clientserver2/js/shared/main/scala/simple/Simple.scala
@@ -0,0 +1,7 @@
+/*shared/main/scala/simple/Simple.scala*/
+package simple
+object Simple{
+ def formatTimes(timestamps: Seq[Long]): String = {
+ timestamps.map(Platform.format).mkString("\n")
+ }
+} \ No newline at end of file
diff --git a/examples/crossBuilds/clientserver2/js/shared/test/scala/simple/SimpleTest.scala b/examples/crossBuilds/clientserver2/js/shared/test/scala/simple/SimpleTest.scala
new file mode 100644
index 0000000..ec6b29f
--- /dev/null
+++ b/examples/crossBuilds/clientserver2/js/shared/test/scala/simple/SimpleTest.scala
@@ -0,0 +1,13 @@
+/*js/shared/test/scala/simple/SimpleTest.scala*/
+/*jvm/shared/test/scala/simple/SimpleTest.scala*/
+package simple
+import utest._
+object SimpleTest extends TestSuite{
+ val tests = TestSuite{
+ 'format{
+ 'nil - assert(Simple.formatTimes(Nil) == "")
+ 'timeZero - assert(
+ Simple.formatTimes(Seq(0)) == "December 31, 1969 4:00:00 PM PST")
+ }
+ }
+} \ No newline at end of file
diff --git a/examples/crossBuilds/clientserver2/js/src/main/scala/simple/Platform.scala b/examples/crossBuilds/clientserver2/js/src/main/scala/simple/Platform.scala
new file mode 100644
index 0000000..906329e
--- /dev/null
+++ b/examples/crossBuilds/clientserver2/js/src/main/scala/simple/Platform.scala
@@ -0,0 +1,34 @@
+//js/src/main/scala/simple/Platform.scala
+package simple
+
+import scala.scalajs.js
+import org.scalajs.dom
+import dom.extensions.Ajax
+import scala.scalajs.concurrent.JSExecutionContext.Implicits.runNow
+import scala.scalajs.js.annotation.JSExport
+import scalatags.JsDom.all._
+@JSExport
+object Platform extends{
+ def format(ts: Long) = {
+ new js.Date(ts).toLocaleString()
+ }
+ @JSExport
+ def main(container: dom.HTMLDivElement) = {
+ container.appendChild(
+ div(
+ h1("Hello from Scala.js!"),
+ p(Simple.formatTimes(Seq(0, 1 << 30)))
+ ).render
+ )
+ val payload = upickle.write(Seq(0L, 1L << 30))
+ Ajax.post("/formatDates", payload).foreach{ xhr =>
+ container.appendChild(
+ div(
+ h1("Hello from Ajax!"),
+ p(xhr.responseText)
+ ).render
+ )
+ }
+
+ }
+} \ No newline at end of file