5 function registerReq(queue,responses) { return function(req) {
6 if (req.url !== "") { sendReq(queue,responses,req); }
10 function updateQueue(queue,responses) {
11 if (queue.length > 0) {
12 Dispatcher.notify(responses.id, queue[0].value);
13 if (queue[0].value.ctor !== Waiting) {
15 setTimeout(function() { updateQueue(queue,responses); }, 0);
20 function setHeader(pair) {
21 request.setRequestHeader(Elm.JavaScript.castStringToJSString(pair._0),
22 Elm.JavaScript.castStringToJSString(pair._1));
25 function sendReq(queue,responses,req) {
26 var JS = Elm.JavaScript;
27 var response = { value: Elm.HTTP.Waiting };
31 if (window.ActiveXObject) { request = new ActiveXObject("Microsoft.XMLHTTP"); }
32 if (window.XMLHttpRequest) { request = new XMLHttpRequest(); }
33 request.onreadystatechange = function(e) {
34 if (request.readyState === 4) {
35 response.value = (request.status === 200
36 ? Elm.HTTP.Success(JS.castJSStringToString(request.responseText))
37 : Elm.HTTP.Failure(request.status)(JS.castJSStringToString(request.statusText)));
38 setTimeout(function() { updateQueue(queue,responses); }, 0);
41 request.open(JS.castStringToJSString(req.verb),
42 JS.castStringToJSString(req.url),
44 Elm.List.map(setHeader)(req.headers);
45 request.send(JS.castStringToJSString(req.body));
48 function send(requests) {
49 var responses = Elm.Signal.constant(Elm.HTTP.Waiting);
50 var sender = Elm.Signal.lift(registerReq([],responses))(requests);
51 function f(x) { return function(y) { return x; } }
52 return Elm.Signal.lift2(f)(responses)(sender);
55 Elm.Native.HTTP = {send:send};
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list