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