Skip to content
This repository was archived by the owner on May 5, 2020. It is now read-only.

Commit 40e4241

Browse files
committed
Switch to JS style for 0.17
1 parent fa63098 commit 40e4241

File tree

1 file changed

+84
-86
lines changed

1 file changed

+84
-86
lines changed

src/Native/WebSocket.js

Lines changed: 84 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,99 @@
1-
Elm.Native.WebSocket = {};
2-
Elm.Native.WebSocket.make = function(localRuntime) {
1+
var _elm_lang$websocket$Native_WebSocket = function() {
32

4-
localRuntime.Native = localRuntime.Native || {};
5-
localRuntime.Native.WebSocket = localRuntime.Native.WebSocket || {};
6-
if (localRuntime.Native.WebSocket.values)
3+
function open(url, settings)
4+
{
5+
return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback)
76
{
8-
return localRuntime.Native.WebSocket.values;
9-
}
7+
try
8+
{
9+
var socket = new WebSocket(url);
10+
}
11+
catch(err)
12+
{
13+
return callback(_elm_lang$core$Native_Scheduler.fail({
14+
ctor: err instanceof SecurityError ? 'BadSecurity' : 'BadArgs',
15+
_0: err.message
16+
}));
17+
}
1018

11-
var Maybe = Elm.Maybe.make(localRuntime);
12-
var Task = Elm.Native.Task.make(localRuntime);
13-
var Utils = Elm.Native.Utils.make(localRuntime);
19+
socket.addEventListener("open", function(event) {
20+
callback(_elm_lang$core$Native_Scheduler.succeed(socket));
21+
});
1422

23+
socket.addEventListener("message", function(event) {
24+
_elm_lang$core$Native_Scheduler.rawSpawn(A2(settings.onMessage, socket, event.data));
25+
});
1526

16-
function open(url, settings)
17-
{
18-
return Task.asyncFunction(function(callback) {
19-
try
20-
{
21-
var socket = new WebSocket(url);
22-
}
23-
catch(err)
27+
socket.addEventListener("close", function(event) {
28+
_elm_lang$core$Native_Scheduler.rawSpawn(settings.onClose({
29+
code: event.code,
30+
reason: event.reason,
31+
wasClean: event.wasClean
32+
}));
33+
});
34+
35+
return function()
36+
{
37+
if (socket && socket.close)
2438
{
25-
return callback(Task.fail({
26-
ctor: err instanceof SecurityError ? 'BadSecurity' : 'BadArgs',
27-
_0: err.message
28-
}));
39+
socket.close();
2940
}
41+
};
42+
});
43+
}
3044

31-
socket.addEventListener("message", function(evt) {
32-
Task.perform(settings.onMessage(evt.data));
33-
});
34-
35-
socket.addEventListener("close", function(evt) {
36-
Task.perform(settings.onClose({
37-
code: evt.code,
38-
reason: evt.reason,
39-
wasClean: evt.wasClean
40-
}));
41-
});
42-
43-
socket.addEventListener("open", function(evt) {
44-
callback(Task.succeed(socket));
45-
});
46-
});
47-
}
48-
49-
function send(socket, string)
45+
function send(socket, string)
46+
{
47+
return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback)
5048
{
51-
return Task.asyncFunction(function(callback) {
52-
var result =
53-
socket.readyState === WebSocket.OPEN
54-
? Maybe.Nothing
55-
: Maybe.Just({ ctor: 'NotOpen' });
49+
var result =
50+
socket.readyState === WebSocket.OPEN
51+
? _elm_lang$core$Maybe$Nothing
52+
: _elm_lang$core$Maybe$Just({ ctor: 'NotOpen' });
5653

57-
try
58-
{
59-
socket.send(string);
60-
}
61-
catch(err)
62-
{
63-
result = Maybe.Just({ ctor: 'BadString' });
64-
}
54+
try
55+
{
56+
socket.send(string);
57+
}
58+
catch(err)
59+
{
60+
result = _elm_lang$core$Maybe$Just({ ctor: 'BadString' });
61+
}
6562

66-
callback(Task.succeed(result));
67-
});
68-
}
63+
callback(_elm_lang$core$Native_Scheduler.succeed(result));
64+
});
65+
}
6966

70-
function close(code, reason, socket)
71-
{
72-
return Task.asyncFunction(function(callback) {
73-
try
74-
{
75-
socket.close(code, reason);
76-
}
77-
catch(err)
78-
{
79-
return callback(Task.fail({
80-
ctor: err instanceof SyntaxError ? 'BadReason' : 'BadCode',
81-
_0: err.message
82-
}));
83-
}
84-
callback(Task.succeed(Utils.Tuple0));
85-
});
86-
}
67+
function close(code, reason, socket)
68+
{
69+
return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) {
70+
try
71+
{
72+
socket.close(code, reason);
73+
}
74+
catch(err)
75+
{
76+
return callback(_elm_lang$core$Native_Scheduler.fail({
77+
ctor: err instanceof SyntaxError ? 'BadReason' : 'BadCode',
78+
_0: err.message
79+
}));
80+
}
81+
callback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0));
82+
});
83+
}
8784

88-
function bytesQueued(socket)
89-
{
90-
return Task.asyncFunction(function(callback) {
91-
callback(Task.succeed(socket.bufferedAmount));
92-
});
93-
}
85+
function bytesQueued(socket)
86+
{
87+
return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback) {
88+
callback(_elm_lang$core$Native_Scheduler.succeed(socket.bufferedAmount));
89+
});
90+
}
9491

95-
return localRuntime.Native.WebSocket.values = {
96-
open: F2(open),
97-
send: F2(send),
98-
close: F3(close),
99-
bytesQueued: bytesQueued
100-
};
92+
return {
93+
open: F2(open),
94+
send: F2(send),
95+
close: F3(close),
96+
bytesQueued: bytesQueued
10197
};
98+
99+
}();

0 commit comments

Comments
 (0)