on master help sign in
Add special finds to JSON.
commit84e8d806312f9be466526df4164f31b50089c20c authorevancz <info@elm-lang.org> dateSun 21 Oct 2012, 04:54 (14 years ago) parentce9e5d2
1 file changed+15
core-js/foreign/JSON.js+15
core-js/foreign/JSON.js+15
@@ -21,17 +21,29 @@ Elm.JSON = function() {
2121 };
2222 };
2323 }
24+
2425 function lookup(key) { return function(obj) {
2526 var k = JS.castStringToJSString(key);
2627 return obj[1].hasOwnProperty(k) ? Just(obj[1][k]) : Nothing ;
2728 };
2829 }
30+ function find(tipe,base) { return function (key) { return function(obj) {
31+ var k = JS.castStringToJSString(key);
32+ if (obj[1].hasOwnProperty(k)) {
33+ var v = obj[1][k];
34+ if (v[0] === tipe) { return v[1]; }
35+ }
36+ return base;
37+ };
38+ }
39+ }
2940 function lookupWithDefault(base) { return function(key) { return function(obj) {
3041 var k = JS.castStringToJSString(key);
3142 return obj[1].hasOwnProperty(k) ? obj[1][k] : base ;
3243 };
3344 };
3445 }
46+
3547 function remove(k) { return function(inObj) {
3648 var obj = inObj[1];
3749 var outObj = {};
@@ -117,6 +129,9 @@ Elm.JSON = function() {
117129 singleton : singleton,
118130 insert : insert,
119131 lookup : lookup,
132+ findString : find("JsonString",["Nil"]),
133+ findObject : find("JsonObject", empty ),
134+ findArray : find("JsonArray" ,["Nil"]),
120135 findWithDefault : lookupWithDefault,
121136 remove : remove,
122137 toPrettyJSString : toPrettyJSString,