Files
hudozka/src/lib/common.js
T
2019-08-05 17:25:51 +03:00

37 lines
658 B
JavaScript

function compose(...fns) {
return value => [...fns]
.reverse()
.reduce((acc, fn) => fn(acc), value)
}
/**
* AND operator for list of values
*
* [true, true, true, ...] -> true
* [false, true, true, ...] -> false
*
* @param list
* @return {boolean}
*/
function all(list) {
return list.reduce((t, i) => t && i, true)
}
/**
* OR operator for list of values
*
* [true, true, true, ...] -> true
* [false, true, true, ...] -> true
* [false, false, false, ...] -> false
*
* @param list
* @return {boolean}
*/
function any(list) {
return list.reduce((t, i) => t || i, false)
}
exports.compose = compose
exports.all = all
exports.any = any