diff options
author | Jakob Odersky <jakob@inpher.io> | 2019-10-09 17:10:43 -0400 |
---|---|---|
committer | Jakob Odersky <jakob@inpher.io> | 2019-10-09 20:33:16 -0400 |
commit | 0ceee5ed4bae240b8c8e94d2fd7424d9d0b67ec7 (patch) | |
tree | 2df0258f81050e6fed51d38e217c4f6256518e12 /common/js/src/main/scala/http/XhrBackend.scala | |
parent | faed28c54900fc0b359700873367095f51425794 (diff) | |
download | scala-triad-0ceee5ed4bae240b8c8e94d2fd7424d9d0b67ec7.tar.gz scala-triad-0ceee5ed4bae240b8c8e94d2fd7424d9d0b67ec7.tar.bz2 scala-triad-0ceee5ed4bae240b8c8e94d2fd7424d9d0b67ec7.zip |
Migrate build to mill
Diffstat (limited to 'common/js/src/main/scala/http/XhrBackend.scala')
-rw-r--r-- | common/js/src/main/scala/http/XhrBackend.scala | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/common/js/src/main/scala/http/XhrBackend.scala b/common/js/src/main/scala/http/XhrBackend.scala deleted file mode 100644 index 3a791c1..0000000 --- a/common/js/src/main/scala/http/XhrBackend.scala +++ /dev/null @@ -1,51 +0,0 @@ -package triad -package http - -import org.scalajs.dom.{ErrorEvent, Event, XMLHttpRequest} - -import scala.concurrent.{Future, Promise, TimeoutException} -import scala.scalajs.js -import scala.scalajs.js.typedarray.{ArrayBuffer, Int8Array} - -trait XhrBackend extends Backend { - - def send(request: Request): Future[Response] = { - val promise = Promise[Response] - val xhr = new XMLHttpRequest() - - xhr.open(request.method, request.url) - xhr.responseType = "arraybuffer" - for ((name, value) <- request.headers) { - xhr.setRequestHeader(name, value) - } - - xhr.send(js.Array(request.body: _*)) - - xhr.onload = (e: Event) => { - val body: Array[Byte] = if (!js.isUndefined(xhr.response)) { - val buffer = new Int8Array(xhr.response.asInstanceOf[ArrayBuffer]) - buffer.toArray - } else { - Array.empty[Byte] - } - - val response = Response( - xhr.status, - Map.empty, - body - ) - promise.success(response) - } - - xhr.onerror = (e: ErrorEvent) => { - promise.failure(new RuntimeException(s"XHR error: ${e.message}")) - } - xhr.ontimeout = (e: Event) => { - promise.failure( - new TimeoutException(s"Request timed out: ${xhr.statusText}")) - } - - promise.future - } - -} |