Skip to content

ContaSystemer/elm-error-message

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ErrorMessage

The package contains module with helper functions for specific error messages.

It's very usefull when doing a communication with JS via ports.

Let's say we receive a Json.Encode.Value from JS. It's a user data with following data structure:

module User exposing (User, decoder)

import Json.Decode as Decode


type alias User =
    { id : Int
    , name : String
    }


decoder : Decode.Decoder User
decoder =
    Decode.map2 User (Decode.field "id" Decode.int) (Decode.field "name" Decode.string)

We would like to decode it. But decoding may fail. When decoding fails we would like to log specific error somewhere (e.g to Sentry).

import ErrorMessage
import Json.Decode as Decode
import User


type Msg
    = UserReceived User.User
    | ReportError String


decodeUser : Decode.Value -> Msg
decodeUser jsonValue =
    case Decode.decodeValue User.decoder jsonValue of
        Ok user ->
            UserReceived user

        Err error ->
            ReportError (ErrorMessage.typeMismatch (Decode.errorToString error))

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages