[{"name":"FFI","comment":"\n\n> Do not forget to setup elm-ffi (README)\n\n@docs read, function, decode\n\n\n## Manage errors\n\n@docs Error, fail, errorToString\n\n","unions":[],"aliases":[{"name":"Error","comment":" Representing JS errors\n\nusually a JS object with a `name` and a `message`\n","args":[],"type":"Json.Decode.Value"}],"values":[{"name":"decode","comment":" Decode values within a Task Error Value\n\n    fetchedUser : Task FFI.Error User\n    fetchedUser =\n        fetchUser\n            |> FFI.decode decodeUser\n\n","type":"Json.Decode.Decoder result -> Task.Task FFI.Error Json.Decode.Value -> Task.Task FFI.Error result"},{"name":"errorToString","comment":" Get a readable error\n","type":"FFI.Error -> String.String"},{"name":"fail","comment":" Explain why a Task failed providing error's name and message\n\n    error : Task FFI.Error a\n    error =\n        FFI.fail \"Some Error\" \"Some cause or solution\"\n\n","type":"String.String -> String.String -> Task.Task FFI.Error a"},{"name":"function","comment":" Create a JS aync function from Elm, with its parameters\n\n    fetchJson : { url: String } -> Task Error Value\n    fetchJson =\n        FFI.function\n            [ ( \"url\", .url >> Json.Encode.string )\n            ]\n            \"\"\"\n            let res = await fetch(url)\n            if (!res.ok) throw res.statusText\n            return await res.json()\n            \"\"\"\n\n","type":"List.List ( String.String, params -> Json.Decode.Value ) -> FFI.JsCode -> params -> Task.Task FFI.Error Json.Decode.Value"},{"name":"read","comment":" Quickly access global values\n\n    language : String\n    language =\n        FFI.read \"return window.navigator.language\"\n        |> Decode.decodeValue Decode.string\n        |> Result.withDefault \"en\"\n\n","type":"FFI.JsCode -> Json.Decode.Value"}],"binops":[]}]