All Projects → etaque → Elm Response

etaque / Elm Response

Response (model, Effects action) utilities in Elm Architecture.

Programming Languages

elm
856 projects

Elm Response

Response utilities in Elm Architecture. Like, build responses from tasks, pipe them, map over.

Usage

What's in a response?

type alias Response model action = ( model, Cmd action )

This package offers alternate ways to construct and transform responses:

  • res and taskRes for inline constructs
  • withCmd, withCmds, withTask and withNone for piped (|>) constructs
  • mapModel, mapCmd and mapBoth for transformations
  • andThen for sequencing multiple updates

Typical usage examples in update function:

update : Action -> Model -> Response Model Action
update action model =
    case action of
    
        Foo bar baz ->
            -- ( { model | someLongFieldName = foo }, Task.perform handleResult (someTaskBuilder baz) )
            res 
                { model | someLongFieldName = foo }
                (Task.attempt handleResult (someTaskBuilder baz))
                

        Taz ->
            -- ( {model | taz = True}, Cmd.none )
            { model | taz = True }
                |> withNone

        SubAction subAction ->
            -- let 
            --     ( newSub, newSubCmd ) =
            --         subActionUpdate subAction model.sub
            -- in 
            --     ( { model | sub = newSub }, Cmd.map SubAction newSubCmd )
            subActionUpdate subAction model.sub
                |> mapBoth (\sub -> { model | sub = sub }) SubAction
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].