harmboschloo / graphql-to-elm / GraphQL.Optional

An Optional can be Present, Null or Absent.


type Optional a
    = Present a
    | Null
    | Absent

map : (a -> b) -> Optional a -> Optional b

withDefault : a -> Optional a -> a

toMaybe : Optional a -> Maybe a

fromMaybe : Optional a -> Maybe a -> Optional a

Encode

encode : (a -> Json.Encode.Value) -> Optional a -> Maybe Json.Encode.Value

Encode an Optional value.

encodeList : (a -> Json.Encode.Value) -> List (Optional a) -> Json.Encode.Value

Encode a list of Optional values. Absent values are omitted.

encodeObject : List ( String, Optional Json.Encode.Value ) -> Json.Encode.Value

Encode a object of Optional fields. Absent fields are omitted.

Decode

fieldDecoder : String -> Json.Decode.Decoder a -> Json.Decode.Decoder (Optional a)

Decode a JSON object with a Optional field.

nonNullFieldDecoder : String -> Json.Decode.Decoder a -> Json.Decode.Decoder (Maybe a)

Decode a JSON object with a Optional field that can be present or absent but not null.