opvasger/loadable/3.0.0

NOTE: the latest version is 3.2.1

Unavailable. Nobody can download this version any more, with elm or with the Lamdera compiler: github.com/opvasger/loadable is gone (deleted or private); Software Heritage not asked yet (this run's --swh-calls were used up); no fork with tag 3.0.0 found (31 same-name repos checked); no cached copy. Use another version.

Details

Loadable

This module helps you model values loaded, for example, from a database over Http/GraphQL.

type Loadable error value
= Idle
| Loading
| Success value
| Failure error
| Reloading value
| ReloadFailure error value

A representation of data-loading. This would usually go into your model.

expectUpdate : Loadable error value -> Loadable error value

Update your loadable to expect a new value. Use this when you expect a new value to arrive soon.

update : Result error value -> Loadable error value -> Loadable error value

Update the loadable with a result. Use this when a new value arrives, and your loadable is expecting the update.

Queries

isLoading : Loadable error value -> Bool

Is the loadable expecting a new value?

isStale : Loadable error value -> Bool

Does the loadable contain a stale value? Staleness implies a reload is underway or failed, in which case the value from the most recent load is available.

hasValue : Loadable error value -> Bool

Is any value, stale or otherwise, contained within the loadable?

hasError : Loadable error value -> Bool

Has the loadable failed on the latest load or reload?

Conversion

map :
(value -> otherValue)
-> Loadable error value
-> Loadable error otherValue

Transform the value of a loadable.

(first -> second -> third)
-> Loadable error first
-> Loadable error second
-> Loadable error third

Transform the values of two loadables, falling back to the weakest constructor of the two. Precedence is as follows:

  1. Failure

  2. Idle

  3. Loading

  4. ReloadFailure

  5. Reloading

  6. Success

(value -> secondValue -> thirdValue -> fourthValue)
-> Loadable error value
-> Loadable error secondValue
-> Loadable error thirdValue
-> Loadable error fourthValue

Refer to map2. Loadables are combined chronologically.

(error -> otherError)
-> Loadable error value
-> Loadable otherError value

Transform the error of a loadable.

toValue : Loadable error value -> Maybe value

Extract the value of a loadable, should there be one.

toError : Loadable error value -> Maybe error

Extract the error of a loadable, should there be one.

fromResult : Result error value -> Loadable error value

Transform a result into a loadable.