on 64e23d4 help sign in
elk/libraries/JavaScript/Experimental.elm
32 lines 949 B history raw
2module JavaScript.Experimental where
4import JavaScript (JSObject)
5import Native.JavaScript as Native
7-- Turn arbitrary JavaScript objects into Elm records.
8-- Arrays are converted into lists, nested objects are allowed.
9-- No `null` values or non-homogeneous arrays.
10--
11-- -- OK objects
12-- { student:"Steve", scores:[83,94,99,72] }
13-- { errorLevel:10, critical:true }
14--
15-- -- BAD objects
16-- { answer:null }
17-- { info:[true,42,'what'] }
18toRecord : JSObject -> a
19toRecord = Native.toRecord
21-- Turn arbitrary Elm records into JavaScript objects.
22-- Lists become arrays, nested records are allowed. No ADTs.
23--
24-- -- OK records
25-- { student="Steve", scores=[83,94,99,72] }
26-- { errorLevel=10, critical=True }
27--
28-- -- BAD records
29-- { answer = Nothing }
30-- { result = Left "An error occurred" }
31fromRecord : a -> JSObject
32fromRecord = Native.fromRecord