on master help sign in
cosmetic: adjust spacing
commitf1e2481641e87ce2188c5ee5bf8f9fedf05d7095 authorEvan Czaplicki <info@elm-lang.org> dateSat 8 Mar 2014, 08:48 (13 years ago) parent1f6fdd8
1 file changed+50−52
libraries/Native/Signal/Http.js+50−52
libraries/Native/Signal/Http.js+50−52
@@ -1,61 +1,59 @@
11Elm.Native.Http = {};
22Elm.Native.Http.make = function(elm) {
33
4− elm.Native = elm.Native || {};
5− elm.Native.Http = elm.Native.Http || {};
6− if (elm.Native.Http.values) return elm.Native.Http.values;
7−
8−
9− var JS = Elm.JavaScript.make(elm);
10− var List = Elm.List.make(elm);
11− var Signal = Elm.Signal.make(elm);
12−
13−
14− function registerReq(queue,responses) { return function(req) {
15− if (req.url.ctor !== '[]') { sendReq(queue,responses,req); }
16− };
17− }
18−
19− function updateQueue(queue,responses) {
20− if (queue.length > 0) {
21− elm.notify(responses.id, queue[0].value);
22− if (queue[0].value.ctor !== 'Waiting') {
23− queue.shift();
24− setTimeout(function() { updateQueue(queue,responses); }, 0);
25− }
4+ elm.Native = elm.Native || {};
5+ elm.Native.Http = elm.Native.Http || {};
6+ if (elm.Native.Http.values) return elm.Native.Http.values;
7+
8+ var JS = Elm.JavaScript.make(elm);
9+ var List = Elm.List.make(elm);
10+ var Signal = Elm.Signal.make(elm);
11+
12+ function registerReq(queue,responses) {
13+ return function(req) {
14+ if (req.url.ctor !== '[]') { sendReq(queue,responses,req); }
15+ };
2616 }
27− }
28−
29− function sendReq(queue,responses,req) {
30− var response = { value: { ctor:'Waiting' } };
31− queue.push(response);
32−
33− var request = null;
34− if (window.ActiveXObject) { request = new ActiveXObject("Microsoft.XMLHTTP"); }
35− if (window.XMLHttpRequest) { request = new XMLHttpRequest(); }
36− request.onreadystatechange = function(e) {
37− if (request.readyState === 4) {
38− response.value = (request.status >= 200 && request.status < 300 ?
39− { ctor:'Success', _0:JS.toString(request.responseText) } :
40− { ctor:'Failure', _0:request.status, _1:JS.toString(request.statusText) });
41− setTimeout(function() { updateQueue(queue,responses); }, 0);
42− }
43− };
44− request.open(JS.fromString(req.verb), JS.fromString(req.url), true);
45− function setHeader(pair) {
46− request.setRequestHeader( JS.fromString(pair._0), JS.fromString(pair._1) );
17+
18+ function updateQueue(queue,responses) {
19+ if (queue.length > 0) {
20+ elm.notify(responses.id, queue[0].value);
21+ if (queue[0].value.ctor !== 'Waiting') {
22+ queue.shift();
23+ setTimeout(function() { updateQueue(queue,responses); }, 0);
24+ }
25+ }
4726 }
48− List.map(setHeader)(req.headers);
49− request.send(JS.fromString(req.body));
50− }
5127
52− function send(requests) {
53− var responses = Signal.constant(elm.Http.values.Waiting);
54− var sender = A2( Signal.lift, registerReq([],responses), requests );
55− function f(x) { return function(y) { return x; } }
56− return A3( Signal.lift2, f, responses, sender );
57− }
28+ function sendReq(queue,responses,req) {
29+ var response = { value: { ctor:'Waiting' } };
30+ queue.push(response);
31+
32+ var request = null;
33+ if (window.ActiveXObject) { request = new ActiveXObject("Microsoft.XMLHTTP"); }
34+ if (window.XMLHttpRequest) { request = new XMLHttpRequest(); }
35+ request.onreadystatechange = function(e) {
36+ if (request.readyState === 4) {
37+ response.value = (request.status >= 200 && request.status < 300 ?
38+ { ctor:'Success', _0:JS.toString(request.responseText) } :
39+ { ctor:'Failure', _0:request.status, _1:JS.toString(request.statusText) });
40+ setTimeout(function() { updateQueue(queue,responses); }, 0);
41+ }
42+ };
43+ request.open(JS.fromString(req.verb), JS.fromString(req.url), true);
44+ function setHeader(pair) {
45+ request.setRequestHeader( JS.fromString(pair._0), JS.fromString(pair._1) );
46+ }
47+ List.map(setHeader)(req.headers);
48+ request.send(JS.fromString(req.body));
49+ }
5850
59− return elm.Native.Http.values = {send:send};
51+ function send(requests) {
52+ var responses = Signal.constant(elm.Http.values.Waiting);
53+ var sender = A2( Signal.lift, registerReq([],responses), requests );
54+ function f(x) { return function(y) { return x; } }
55+ return A3( Signal.lift2, f, responses, sender );
56+ }
6057
58+ return elm.Native.Http.values = {send:send};
6159};