
"Almost" functional programming (typed for TypeScript) utils methods
Why
Wrapping all the methods I usually put within a functional.js
file inside my projects, as node module. BTW this is a nice way to make mistake and learn more about functional programming.
Install
$ yarn add phunctional
Usage
The library can be used both with normal JavaScript and TypeScript.
const {switchcase} = require('phunctional');
const awesomeSwitch = {
aCondition: 'some value',
anotherCondition: 'some other value'
};
const res = switchcase(awesomeSwitch)('a default value')('aCondition');
console.log(res);
Methods
switchcase
Simple switch
but composable with object literals. It also can run a function.
Object -> Any -> String
expand
Object
: object of cases
to analyzeAny
: default case as anything you needString
: key
to check
return case | defaultCase
Returns the choosen case or the defaultCase
map
Classic map
on array but without side effects.
Function -> Array
expand
Function
: function to handle the map
Array
: array of items
return [T] | []
Returns an empy array if the array passed is not valid.
pEach
forEach
that returns a Promise and can also handle a delay between iterations.
(Array, [Number]) -> Function -> Promise
expand
-
Array
: array of items to iterate
-
Number
: delay in milliseconds to run each iteration and wait
-
Function
: function to handle the single item
return Promise
Returns a Promise
with an array of the results of every iteration.
License
MIT © LasaleFamine