chazsconi/elm-phoenix-ports/1.0.0

NOTE: the latest version is 2.1.0

Rerouted (retagged, needs approval). The tag now points at a different commit than when this version was published. The Lamdera package server serves a copy recovered from https://github.com/chazsconi/elm-phoenix-ports.

What we checked: Tag 1.0.0 is still on github.com/chazsconi/elm-phoenix-ports; its commit d2dc645ca390 is from 2020-06-07 10:15 UTC, after the version was published (2020-06-07 09:33 UTC); elm.json differs from package.elm-lang.org's; the exposed modules match docs.json; the zip's SHA-1 is not the published one and nothing else confirms its contents.

We could not verify this copy against what was published, so the Lamdera compiler asks before using it (y/n). Without a terminal, as in CI, it stops with an error unless approved:

  • lamdera make --auto-approve-package-rerouting approves rerouted versions for that run,
  • LAMDERA_AUTO_APPROVE_PACKAGE_REROUTING=1 does the same for every run in that environment,
  • LAMDERA_CACHE=off skips the Lamdera package server altogether: packages come from package.elm-lang.org and GitHub only, as with elm, and a rerouted version then fails to download.

Details · package.elm-lang.org's zip: https://github.com/chazsconi/elm-phoenix-ports/zipball/1.0.0/

Phoenix.Push

A message to push informations to a channel.

Definition

type alias Push msg =
PhoenixPush msg

The message abstraction

Helpers

init : Topic -> Event -> Push msg

Initialize a message with a topic and an event.

init "room:lobby" "new_msg"
withPayload : Value -> Push msg -> Push msg

Attach a payload to a message

payload =
    Json.Encode.object [("msg", "Hello Phoenix")]


init "room:lobby" "new_msg"
    |> withPayload
onOk : (Value -> msg) -> Push msg -> Push msg

Callback if the server replies with an "ok" status.

type Msg = MessageArrived | ...


payload =
    Json.Encode.object [("msg", "Hello Phoenix")]


init "room:lobby" "new_msg"
    |> withPayload
    |> onOk (\_ -> MessageArrived)
onError : (Value -> msg) -> Push msg -> Push msg

Callback if the server replies with an "error" status.

type Msg = MessageFailed Value | ...


payload =
    Json.Encode.object [("msg", "Hello Phoenix")]


init "room:lobby" "new_msg"
    |> withPayload
    |> onError MessageFailed
map : (a -> b) -> Push a -> Push b

Applies the function on the onOk and onError callback