1module JavaScript.Experimental where
2{-| A pair of very experimental functions for converting between
3Elm records and JavaScript objects. It currently uses a best effort
4conversion that can cause runtime errors. This API should change and
5improve as we find its key failings.
7# Converting between Elm records and JS Objects
8@docs toRecord, fromRecord
11import Native.JavaScript
14data RawObject = RawObject
16{-| Turn arbitrary JavaScript objects into Elm records.
17Arrays are converted into lists, nested objects are allowed.
18No `null` values or non-homogeneous arrays.
21 { student:"Steve", scores:[83,94,99,72] }
22 { errorLevel:10, critical:true }
26 { info:[true,42,'what'] }
28toRecord : RawObject -> a
29toRecord = Native.JavaScript.toRecord
31{-| Turn arbitrary Elm records into JavaScript objects.
32Lists become arrays, nested records are allowed. No ADTs.
35 { student="Steve", scores=[83,94,99,72] }
36 { errorLevel=10, critical=True }
40 { result = Left "An error occurred" }
42fromRecord : a -> RawObject
43fromRecord = Native.JavaScript.fromRecord
45{-| Turn a raw JavaScript object into a `Json.Value` as described in the
48toJson : RawObject -> Json.Value
49toJson = Native.Json.fromJS
51{-| Turn a `Json.Value` (as described in the `Json` library) into a raw
54fromJson : Json.Value -> RawObject
55fromJson = Native.Json.toJS
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