Skip to content

fluture-js/fluenture

Repository files navigation

Fluenture

Brings back Fluture's fluent method API, for the nostalgic developer.

Usage

Node

$ npm install --save fluenture

On Node 12 and up, this module can be loaded directly with import or require. On Node versions below 12, require or the esm-loader can be used.

Deno and Modern Browsers

You can load the EcmaScript module from various content delivery networks:

Old Browsers and Code Pens

There's a UMD file included in the NPM package, also available via jsDelivr: https://cdn.jsdelivr.net/npm/[email protected]/dist/umd.js

This file adds fluenture to the global scope, or use CommonJS/AMD when available.

Usage Example

import {resolve, reject} from 'fluture';
import {fluent} from 'fluenture';

fluent (resolve (42))
.map (x => x / 2)
.chain (x => reject (x + 21))
.swap ()
.fork (console.error, console.log)

API

We're using the Fluenture a b type here to denote instances of Future that were enhanced with a fluent method API. One can think of the Fluenture type as a subtype of Future: any instances of it are also instances of Future.

Enhance a Future with the fluent method API.

This function is idempotent.

Strip a fluent Future (or "Fluenture") from its method API.

This function is idempotent.

This function is equivalent to Fluture's built-in pipe function, with once exception; If a Future is returned from the given function, it is automatically wrapped using fluent, so as to keep the fluent method chain intact.

Fluent pipe.

Fluent alt.

Fluent and.

Fluent ap.

Fluent bichain.

Fluent bimap.

Fluent both.

Fluent cache.

Fluent chain.

Fluent chainRej.

Fluent coalesce.

Fluent lastly.

Fluent map.

Fluent mapRej.

Fluent pap.

Fluent race.

Fluent swap.

Fluent done.

Fluent fork.

Fluent forkCatch.

Fluent promise.

Fluent value.