@@ -9,6 +9,7 @@ improve as we find its key failings.
11import Native.JavaScript
11import Native.JavaScript
13data RawObject = RawObject
14data RawObject = RawObject
@@ -16,13 +17,13 @@ data RawObject = RawObject
16Arrays are converted into lists, nested objects are allowed.
17Arrays are converted into lists, nested objects are allowed.
17No `null` values or non-homogeneous arrays.
18No `null` values or non-homogeneous arrays.
19− -- OK objects
20+ -- OK objects
20− { student:"Steve", scores:[83,94,99,72] }
21+ { student:"Steve", scores:[83,94,99,72] }
21− { errorLevel:10, critical:true }
22+ { errorLevel:10, critical:true }
23− -- BAD objects
24+ -- BAD objects
24− { answer:null }
25+ { answer:null }
25− { info:[true,42,'what'] }
26+ { info:[true,42,'what'] }
27toRecord : RawObject -> a
28toRecord : RawObject -> a
28toRecord = Native.JavaScript.toRecord
29toRecord = Native.JavaScript.toRecord
@@ -30,13 +31,25 @@ toRecord = Native.JavaScript.toRecord
30{-| Turn arbitrary Elm records into JavaScript objects.
31{-| Turn arbitrary Elm records into JavaScript objects.
31Lists become arrays, nested records are allowed. No ADTs.
32Lists become arrays, nested records are allowed. No ADTs.
33− -- OK records
34+ -- OK records
34− { student="Steve", scores=[83,94,99,72] }
35+ { student="Steve", scores=[83,94,99,72] }
35− { errorLevel=10, critical=True }
36+ { errorLevel=10, critical=True }
37− -- BAD records
38+ -- BAD records
38− { answer = Nothing }
39+ { answer = Nothing }
39− { result = Left "An error occurred" }
40+ { result = Left "An error occurred" }
41fromRecord : a -> RawObject
42fromRecord : a -> RawObject
42−fromRecord = Native.JavaScript.fromRecord
43+fromRecord = Native.JavaScript.fromRecord
45+{-| Turn a raw JavaScript object into a `Json.Value` as described in the
48+toJson : RawObject -> Json.Value
49+toJson = Native.Json.fromJS
51+{-| Turn a `Json.Value` (as described in the `Json` library) into a raw
54+fromJson : Json.Value -> RawObject
55+fromJson = Native.Json.toJS