ContaSystemer / elm-effects-msg-from-js / Effects.MsgFromJs

Message from JS system is used to listen for messages from JS and decode them to Elm messages. It uses effects for communication with other systems.

Create


type alias Effects msg =
Effects (Effect msg)

Message from JS system effects.

subscribe : String -> List (ResultDecoder Json.Decode.Error msg) -> Effects msg

Subscribes to listen incoming messages from JS. Module name is used for error logging.

decode : (value -> msg) -> Json.Decode.Decoder value -> Json.Decode.Value -> Result Json.Decode.Error msg

Decodes JSON value into a result.

succeed : msg -> Json.Decode.Value -> Result Json.Decode.Error msg

Succeeds with a message without decoding JSON value.

Transform

map : (msgA -> msgB) -> Effects msgA -> Effects msgB

Maps effects.

decodeJsData : (List msg -> msg) -> (String -> msg) -> Effects msg -> JsData -> msg

Decodes incoming data from JS. It succeeds when at least one effect succeeds. Otherwise it fails with combined error from all effects. Effects are processed independently, means that different effects can reuse same message tag names.