funfix-effect

Sub-package of Funfix defining monadic data types for dealing with laziness and side effects

Usage no npm install needed!

<script type="module">
  import funfixEffect from 'https://cdn.skypack.dev/funfix-effect';
</script>

README

funfix-effect

Join chat npm

Sub-project of Funfix defining monadic data types for controlling laziness, asynchrony and side effects.

Documentation

Links:

Usage

You can depend on the whole funfix library, by adding it to package.json:

npm install --save funfix

In this case imports are like:

import { Eval, IO } from "funfix"

Or for finer grained dependency management, the project can depend only on funfix-effect:

npm install --save funfix-effect

In this case imports are like:

import { Eval, IO } from "funfix-effect"

Usage sample:

import { IO } from "funfix"

const f1 = IO.of(() => "hello")
const f2 = IO.of(() => "world")

const greeting = IO.map2(f1, f2, (a, b) => a + " " + b)

greeting.run().onComplete(result =>
  result.fold(
    console.error,
    console.info
  ))

Modules: UMD and ES 2015

The library has been compiled using UMD (Universal Module Definition), so it should work with CommonJS and AMD.

But it also provides a module definition in package.json, thus providing compatibility with ECMAScript 2015 modules, for usage when used with a modern JS engine, or when bundling with a tool chain that understands ES2015 modules, like Rollup or Webpack.

License

Licensed under the Apache License, Version 2.0.