UNPKG

react-universally

Version:

A starter kit for universal react applications.

22 lines (20 loc) 865 B
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' */ export default function ifElse(condition) { return (then, or) => execIfFunc(condition) ? execIfFunc(then) : execIfFunc(or); }