summaryrefslogtreecommitdiff
path: root/src/web/app/common/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/web/app/common/scripts')
-rw-r--r--src/web/app/common/scripts/stream.js39
-rw-r--r--src/web/app/common/scripts/stream.ls39
2 files changed, 39 insertions, 39 deletions
diff --git a/src/web/app/common/scripts/stream.js b/src/web/app/common/scripts/stream.js
new file mode 100644
index 0000000000..b31e570444
--- /dev/null
+++ b/src/web/app/common/scripts/stream.js
@@ -0,0 +1,39 @@
+const ReconnectingWebSocket = require('reconnecting-websocket');
+const riot = require('riot');
+
+module.exports = me => {
+ let state = 'initializing';
+ const stateEv = riot.observable();
+ const event = riot.observable();
+ const host = CONFIG.api.url.replace('http', 'ws');
+ const socket = new ReconnectingWebSocket(`${host}?i=${me.token}`);
+
+ socket.onopen = () => {
+ state = 'connected';
+ stateEv.trigger('connected');
+ };
+
+ socket.onclose = () => {
+ state = 'reconnecting';
+ stateEv.trigger('closed');
+ };
+
+ socket.onmessage = message => {
+ try {
+ const message = JSON.parse(message.data);
+ if (message.type) {
+ event.trigger(message.type, message.body);
+ }
+ } catch (e) {
+ // noop
+ }
+ };
+
+ event.on('i_updated', me.update);
+
+ return {
+ stateEv: stateEv,
+ getState: () => state,
+ event: event
+ };
+};
diff --git a/src/web/app/common/scripts/stream.ls b/src/web/app/common/scripts/stream.ls
deleted file mode 100644
index c2c061603e..0000000000
--- a/src/web/app/common/scripts/stream.ls
+++ /dev/null
@@ -1,39 +0,0 @@
-# Stream
-#================================
-
-ReconnectingWebSocket = require \reconnecting-websocket
-riot = require \riot
-
-module.exports = (me) ~>
- state = \initializing
- state-ev = riot.observable!
- event = riot.observable!
-
- host = CONFIG.api.url.replace \http \ws
- socket = new ReconnectingWebSocket "#{host}?i=#{me.token}"
-
- socket.onopen = ~>
- state := \connected
- state-ev.trigger \connected
-
- socket.onclose = ~>
- state := \reconnecting
- state-ev.trigger \closed
-
- socket.onmessage = (message) ~>
- try
- message = JSON.parse message.data
- if message.type?
- event.trigger message.type, message.body
- catch
- # ignore
-
- get-state = ~> state
-
- event.on \i_updated me.update
-
- {
- state-ev
- get-state
- event
- }