triplex-fp
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

triplex-fp - UI data state triplex extension for fp-ts

ℹ️ This package is currently in an experimental stage.

triplex-fp provides a fp-ts-compatible Triplex type class that represents the triply branched UI data state of "progress" (data is being fetched), "error" (the fetching failed) and "available" (the fetching is successful, yielding a result), with the applicative combinator getApplicative that lets you combine such states, with an "error" instance masking "progress" instances, and a "progress" instance masking "available" instances. It also supplies other ergonomic methods for constructing, discriminating, folding mapping over different branches, as well as conversion into Option and Either.

The applicative takes semigroup type classes for progress and error states, allowing you to specify your on logic as to how they should be combined when putting two triplex instances together. You may therefore choose to keep any single error instance and throw away the rest, or concatenate them, or perform any other accumulation logic on the individual error instances. The same goes with the progress states.

The library also ships the following type classes that can be used to represent progress states:

  • WeightedProgress - represents a numerical progress state that can be combined in a weighted manner, so that some data contribution's progress can count more than others.

  • (RetryableError) - represents a simple, message-less error that is either retryable or not retryable. When combined, non-retryable errors propagate over retryable errors.

  • (Unit) - represents a type with no value. You can use this to blank out progresses or errors if you aren't interested in them.

Readme

Keywords

none

Package Sidebar

Install

npm i triplex-fp

Weekly Downloads

0

Version

0.2.0

License

none

Unpacked Size

55.4 kB

Total Files

29

Last publish

Collaborators

  • soul-codes