elm/libraries/JavaScript/Experimental.elm

32 lines
949 B
Elm
Raw Normal View History

module JavaScript.Experimental where
2013-07-27 11:11:18 +00:00
import JavaScript (JSObject)
import Native.JavaScript as Native
-- Turn arbitrary JavaScript objects into Elm records.
-- Arrays are converted into lists, nested objects are allowed.
-- No `null` values or non-homogeneous arrays.
--
-- -- OK objects
-- { student:"Steve", scores:[83,94,99,72] }
-- { errorLevel:10, critical:true }
--
-- -- BAD objects
-- { answer:null }
-- { info:[true,42,'what'] }
toRecord : JSObject -> a
2013-07-27 11:11:18 +00:00
toRecord = Native.toRecord
-- Turn arbitrary Elm records into JavaScript objects.
-- Lists become arrays, nested records are allowed. No ADTs.
--
-- -- OK records
-- { student="Steve", scores=[83,94,99,72] }
-- { errorLevel=10, critical=True }
--
-- -- BAD records
-- { answer = Nothing }
-- { result = Left "An error occurred" }
fromRecord : a -> JSObject
2013-07-27 11:11:18 +00:00
fromRecord = Native.fromRecord