@@ -8,9 +8,10 @@ improve as we find its key failings.
8@docs toRecord, fromRecord
8@docs toRecord, fromRecord
11−import JavaScript (JSObject)
12import Native.JavaScript
11import Native.JavaScript
13+data RawObject = RawObject
14{-| Turn arbitrary JavaScript objects into Elm records.
15{-| Turn arbitrary JavaScript objects into Elm records.
15Arrays are converted into lists, nested objects are allowed.
16Arrays are converted into lists, nested objects are allowed.
16No `null` values or non-homogeneous arrays.
17No `null` values or non-homogeneous arrays.
@@ -23,7 +24,7 @@ No `null` values or non-homogeneous arrays.
23 { answer:null }
24 { answer:null }
24 { info:[true,42,'what'] }
25 { info:[true,42,'what'] }
26−toRecord : JSObject -> a
27+toRecord : RawObject -> a
27toRecord = Native.JavaScript.toRecord
28toRecord = Native.JavaScript.toRecord
29{-| Turn arbitrary Elm records into JavaScript objects.
30{-| Turn arbitrary Elm records into JavaScript objects.
@@ -37,5 +38,5 @@ Lists become arrays, nested records are allowed. No ADTs.
37 { answer = Nothing }
38 { answer = Nothing }
38 { result = Left "An error occurred" }
39 { result = Left "An error occurred" }
40−fromRecord : a -> JSObject
41+fromRecord : a -> RawObject
41fromRecord = Native.JavaScript.fromRecord
42fromRecord = Native.JavaScript.fromRecord