Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fluenture

Package Overview
Dependencies
Maintainers
3
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fluenture

Bring back Fluture's fluent method API

  • 3.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
59
increased by1375%
Maintainers
3
Weekly downloads
 
Created
Source

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/fluenture@3.1.0/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.

fluent :: Future a b -⁠> Fluenture a b

Enhance a Future with the fluent method API.

This function is idempotent.

functional :: Future a b -⁠> Future a b

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

This function is idempotent.

pipe :: (Future a b -⁠> c) -⁠> c

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.

alt :: Fluenture a b ~> Future a b -⁠> Fluenture a b

Fluent alt.

and :: Fluenture a b ~> Future a b -⁠> Fluenture a b

Fluent and.

ap :: Fluenture a b ~> Future a (b -⁠> c) -⁠> Fluenture a c

Fluent ap.

bichain :: Fluenture a b ~> (a -⁠> Fluenture a c, b -⁠> Fluenture a c) -⁠> Fluenture a c

Fluent bichain.

bimap :: Fluenture a b ~> (a -⁠> c, b -⁠> d) -⁠> Fluenture c d

Fluent bimap.

both :: Fluenture a b ~> Future a c -⁠> Fluenture a (Pair b c)

Fluent both.

cache :: Fluenture a b ~> () -⁠> Fluenture a b

Fluent cache.

chain :: Fluenture a b ~> (b -⁠> Fluenture a c) -⁠> Fluenture a c

Fluent chain.

chainRej :: Fluenture a b ~> (a -⁠> Fluenture c b) -⁠> Fluenture c b

Fluent chainRej.

coalesce :: Fluenture a b ~> (a -⁠> c, b -⁠> c) -⁠> Fluenture d c

Fluent coalesce.

lastly :: Fluenture a b ~> Future a c -⁠> Fluenture a b

Fluent lastly.

map :: Fluenture a b ~> (b -⁠> c) -⁠> Fluenture a c

Fluent map.

mapRej :: Fluenture a b ~> (a -⁠> c) -⁠> Fluenture c b

Fluent mapRej.

pap :: Fluenture a b ~> Fluenture a (b -⁠> c) -⁠> Fluenture a c

Fluent pap.

race :: Fluenture a b ~> Future a b -⁠> Fluenture a b

Fluent race.

swap :: Fluenture a b ~> () -⁠> Fluenture b a

Fluent swap.

done :: Fluenture a b ~> (b -⁠> c) -⁠> Cancel

Fluent done.

fork :: Fluenture a b ~> (a -⁠> c, b -⁠> d) -⁠> Cancel

Fluent fork.

forkCatch :: Fluenture a b ~> (Error -⁠> c, a -⁠> d, b -⁠> e) -⁠> Cancel

Fluent forkCatch.

promise :: Fluenture Error a ~> () -⁠> Promise Error a

Fluent promise.

value :: Fluenture a b ~> ((Nullable a, b) -⁠> c) -⁠> Cancel

Fluent value.

Keywords

FAQs

Package last updated on 06 Apr 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc