ramda-extension
Version:
Helpful functions built on top of the mighty Ramda
41 lines (36 loc) • 1.22 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _dispatchWith = _interopRequireDefault(require("./dispatchWith"));
var _notNil = _interopRequireDefault(require("./notNil"));
/**
* Returns first not nil result from evaluation of functions in the list.
* Returns `undefined` otherwise.
*
* @func
* @category Function
* @see dispatchWith
*
* @param {array} listFns List of functions
* @param {*} values Values applied to functions from `listFns`
* @return {any} Returns first not nil result of calling fn from `listFns` with `values`.
*
* @example
*
* const validateName = R_.dispatch([
* ifElse(Boolean, R_.noop, always('Name is required.')),
* ifElse(R_.isString, R_.noop, always('Name must be valid.')),
* ]);
*
* validateName("") // 'Name is required.'
* validateName(111) // 'Name must be valid.'
* validateName("Valid name") // undefined
*
* @sig [a] -> b|undefined
*/
var dispatch = (0, _dispatchWith.default)(_notNil.default);
var _default = dispatch;
exports.default = _default;