Repository URL to install this package:
|
Version:
1.2.19 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ifElse = ifElse;
exports.default = void 0;
const execIfFunc = x => typeof x === 'function' ? x() : x;
/**
* This is a higher order function that accepts a boolean condition and will
* return a function allowing you to provide if/else values that should be
* resolved based on the boolean condition.
*
* @param {Boolean|() => Boolean} condition:
* The condition to test against. This can be a function for lazy resolution.
*
* @return {(X|() => X, Y|() => Y) => X|Y}
* A function where the first paramater is the "if" and the second paramater
* is the "else". Each of these allows lazy resolving by providing a function.
*
* @example
* const ifDev = ifElse(process.env.NODE_ENV === 'development');
* ifDev('foo', () => 'lazy resolved'); // => 'foo'
*/
function ifElse(condition) {
return (then, or) => execIfFunc(condition) ? execIfFunc(then) : execIfFunc(or);
}
var _default = ifElse;
exports.default = _default;