KudoJS is a small utility library with a collection of popular Algebraic Data Types and Helper functions to help you write code in a functional programming style in Javascript.
Installation
Install and save KudoJS as a dependency in your current project
$ npm install --save fp-kudojs
Using with CommonJS
const kudoJS = require("fp-kudojs")
Using ES Modules
import kudoJS from "fp-kudojs"
Using without modules
<script src="/path/to/kudo.iife.js"></script>
Helper Functions
These are the functions under the kudoJS.* namespace
kudoJS.idkudoJS.oncekudoJS.currykudoJS.ncurrykudoJS.composekudoJS.constantkudoJS.fmapkudoJS.bimapkudoJS.chainkudoJS.caseOfkudoJS.liftAnkudoJS.liftA2kudoJS.liftA3kudoJS.liftA4kudoJS.liftA5kudoJS.whenkudoJS.propkudoJS.eitherToMaybekudoJS.maybeToEither
Algebraic Data Types (ADTs)
ADTs under the kudoJS.* namespace. All of the data types are compatible with the Fantasy Land Specifications
| ADT | Constructors | Static Methods | Instance Methods |
|---|---|---|---|
kudoJS.Pair |
Pair, of |
equals, concat, fst, snd, ap, getValue, map, bimap, chain, swap, toString |
|
kudoJS.Maybe |
of, Just, Nothing, zero, fromNullable, withDefault |
catMaybes, isNothing, isJust |
equals, ap, alt, map, chain, toString, getValue, isNothing, isJust |
kudoJS.Either |
of, Left, Right, fromNullable, withDefault |
try, isLeft, isRight |
equals, ap, getValue, map, bimap, chain, swap, toString, isLeft, isRight |
kudoJS.Task |
Task, of, rejected |
fork, concat, ap, getValue, map, chain, toPromise, toString |
|
kudoJS.Reader |
Reader, of, ask |
runWith, ap, getValue, map, chain, toString |
|
kudoJS.State |
State, of, get, put |
runWith, execWith, evalWith, ap, getValue, map, chain, toString |
License
All code and documentation are (c) 2018 Ritesh Pillai and released under the MIT License. A copy of the MIT License is also included.
