Created
November 28, 2018 16:56
-
-
Save magopian/297d20e95b49daf3ad934e36b1855e82 to your computer and use it in GitHub Desktop.
elm decoder very helpful to debug decoders used in event handlers (thanks @JoelQ on the elm slack)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Main exposing (main) | |
import Html exposing (Html, text) | |
import Json.Decode as Decode exposing (Decoder) | |
loggingDecoder : Decoder a -> Decoder a | |
loggingDecoder realDecoder = | |
Decode.value | |
|> Decode.andThen | |
(\value -> | |
case Decode.decodeValue realDecoder value of | |
Ok decoded -> | |
Decode.succeed decoded | |
Err error -> | |
Decode.fail <| Debug.log "decode error" error | |
) | |
nameDecoder : Decoder String | |
nameDecoder = | |
Decode.field "name" Decode.string | |
json : String | |
json = | |
""" | |
{ "age": 42 } | |
""" | |
main : Html msg | |
main = | |
case Decode.decodeString (loggingDecoder nameDecoder) json of | |
Ok name -> | |
text name | |
Err _ -> | |
text "check the logs for the error" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
D.fail <| D.errorToString <| Debug.log "decode error" error