• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

baetheus / fun / 9083783826
100%

Build:
DEFAULT BRANCH: main
Ran 14 May 2024 05:40PM UTC
Jobs 1
Files 47
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 May 2024 05:39PM UTC coverage: 99.836% (+2.4%) from 97.404%
9083783826

push

github

baetheus
feat: reorganize contrib, implement stream, simplify optic

This is a fairly large commit. The primary goals were to recreate the dux state
management library on top of fun. This led down a rabbit whole that included:

1. Implementing and writing tests for DatumEither
2. Exploring various stream implementations, including mostjs, rxjs, most2, and
   callbags.
3. Implementing a Stream type in fun.
4. Implementing Dux on top of Stream and DatumEither

In addition to adding Stream, Dux, and DatumEither I settled on a simpler model
for "contributions". Previous external contributions lived in the contrib
directory. These were anything from experimental ideas to algebraic structure
wrappers around other libraries. Ultimately, the purpose of fun is to be
dependency free, so external libraries were removed and "ideas" were either
promoted to full fledged modules or moved into the "ideas" directory. This
simplifies fun by making "ideas" non-production.

There is still some overlap between ideas and modules marked as experimental.
The basic idea is that modules in the ideas directoey  may or may not be published,
but modules in the root directory are definitely published. Experimental tagged
modules indicate that the api for those modules is considered unstable.

In contrib, the mostjs and fast-check modules were removed. Free was promoted to
a root module, and dux was moved to ideas. There were a handful of small api
additions to various modules such as promise, array, and async_iterable.

Lastly, the Optic type in optic.ts was simplified. Previously, Optic was broken
into an intersection of Viewer and  Modifier, with Reviewer being a separate
type. I found a way to properly do an optional include of reviewer in the root
Optic type so the subtypes of Viewer, Modifier, and Reviewer were removed. The
benefit of this is that the standard compose function in optic.ts will properly
compose a review function if it exists on the optics being composed.

may or may not be puli

794 of 803 branches covered (98.88%)

Branch coverage included in aggregate %.

836 of 837 new or added lines in 7 files covered. (99.88%)

8925 of 8932 relevant lines covered (99.92%)

61.51 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-v1.41.1-ubuntu-latest - 9083783826.1 14 May 2024 05:40PM UTC 0
99.84
GitHub Action Run
Source Files on build 9083783826
Detailed source file information is not available for this build.
  • Back to Repo
  • 8386713f on github
  • Prev Build on main (#8351289333)
  • Next Build on main (#9136628247)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc