commit
df73a090e4
4 changed files with 11 additions and 9 deletions
|
@ -5,6 +5,7 @@
|
||||||
module Http where
|
module Http where
|
||||||
|
|
||||||
import Native.Http (send)
|
import Native.Http (send)
|
||||||
|
import Signal (lift)
|
||||||
|
|
||||||
-- The datatype for responses. Success contains only the returned message.
|
-- The datatype for responses. Success contains only the returned message.
|
||||||
-- Failures contain both an error code and an error message.
|
-- Failures contain both an error code and an error message.
|
||||||
|
|
|
@ -78,25 +78,25 @@ find get base =
|
||||||
|
|
||||||
-- Find a string value in an Elm Json object. If the key is not found or the
|
-- Find a string value in an Elm Json object. If the key is not found or the
|
||||||
-- value found is not a string, this returns the empty string.
|
-- value found is not a string, this returns the empty string.
|
||||||
findString : String -> Dict String Value -> String
|
findString : String -> Object -> String
|
||||||
findString = find string ""
|
findString = find string ""
|
||||||
|
|
||||||
-- Find a number value in an Elm Json object. If the key is not found or the
|
-- Find a number value in an Elm Json object. If the key is not found or the
|
||||||
-- value found is not a number, this returns 0
|
-- value found is not a number, this returns 0
|
||||||
findNumber : String -> Dict String Value -> Float
|
findNumber : String -> Object -> Float
|
||||||
findNumber = find number 0
|
findNumber = find number 0
|
||||||
|
|
||||||
-- Find a boolean value in an Elm Json object. If the key is not found or the
|
-- Find a boolean value in an Elm Json object. If the key is not found or the
|
||||||
-- value found is not a boolean, this returns the False.
|
-- value found is not a boolean, this returns the False.
|
||||||
findBoolean : String -> Dict String Value -> Bool
|
findBoolean : String -> Object -> Bool
|
||||||
findBoolean = find boolean False
|
findBoolean = find boolean False
|
||||||
|
|
||||||
-- Find an array value in an Elm Json object. If the key is not found or the
|
-- Find an array value in an Elm Json object. If the key is not found or the
|
||||||
-- value found is not an array, this returns an empty list.
|
-- value found is not an array, this returns an empty list.
|
||||||
findArray : String -> Dict String Value -> [Value]
|
findArray : String -> Object -> [Value]
|
||||||
findArray = find array []
|
findArray = find array []
|
||||||
|
|
||||||
-- Find an object value in an Elm Json object. If the key is not found or the
|
-- Find an object value in an Elm Json object. If the key is not found or the
|
||||||
-- value found is not an object, this returns an empty object.
|
-- value found is not an object, this returns an empty object.
|
||||||
findObject : String -> Dict String Value -> Dict String Value
|
findObject : String -> Object -> Object
|
||||||
findObject = find object Dict.empty
|
findObject = find object Dict.empty
|
||||||
|
|
|
@ -6,6 +6,7 @@ Elm.Native.Json = function(elm) {
|
||||||
var Dict = Elm.Dict(elm);
|
var Dict = Elm.Dict(elm);
|
||||||
var List = Elm.List(elm);
|
var List = Elm.List(elm);
|
||||||
var JS = Elm.JavaScript(elm);
|
var JS = Elm.JavaScript(elm);
|
||||||
|
var Utils = Elm.Native.Utils(elm);
|
||||||
|
|
||||||
function fromValue(v) {
|
function fromValue(v) {
|
||||||
switch (v.ctor) {
|
switch (v.ctor) {
|
||||||
|
@ -45,7 +46,7 @@ Elm.Native.Json = function(elm) {
|
||||||
return { ctor:"Array", _0: JS.toList(v) };
|
return { ctor:"Array", _0: JS.toList(v) };
|
||||||
}
|
}
|
||||||
var array = [];
|
var array = [];
|
||||||
for (var k in v) array.push(Tuple2(JS.toString(k), toValue(v[k])));
|
for (var k in v) array.push(Utils.Tuple2(JS.toString(k), toValue(v[k])));
|
||||||
return { ctor:"Object", _0: Dict.fromList(JS.toList(array)) };
|
return { ctor:"Object", _0: Dict.fromList(JS.toList(array)) };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ Elm.Native.Http = function(elm) {
|
||||||
function updateQueue(queue,responses) {
|
function updateQueue(queue,responses) {
|
||||||
if (queue.length > 0) {
|
if (queue.length > 0) {
|
||||||
elm.notify(responses.id, queue[0].value);
|
elm.notify(responses.id, queue[0].value);
|
||||||
if (queue[0].value.ctor !== Waiting) {
|
if (queue[0].value.ctor !== 'Waiting') {
|
||||||
queue.shift();
|
queue.shift();
|
||||||
setTimeout(function() { updateQueue(queue,responses); }, 0);
|
setTimeout(function() { updateQueue(queue,responses); }, 0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue