UNPKG

ramda-extension

Version:

Helpful functions built on top of the mighty Ramda

34 lines (28 loc) 1.07 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ramda = require("ramda"); var _argumentsToList = _interopRequireDefault(require("./argumentsToList")); var equalsAndAlways = (0, _ramda.useWith)(_argumentsToList.default, [_ramda.equals, _ramda.always]); /** * Returns the opposite value comparing against a given set of two values. * * @func * @category Function * * @param {Array} options - must be array of two items * @param {*} val * @return {*} opposite of options * @example * * R_.toggle('on', 'off')('on'); // 'off' * R_.toggle('active', 'inactive')('inactive'); // 'active' * R_.toggle(10, 100)(10); // 100 * R_.toggle('on', 'off')('other'); // 'other' */ var toggle = (0, _ramda.compose)(_ramda.cond, (0, _ramda.juxt)([equalsAndAlways, (0, _ramda.flip)(equalsAndAlways), (0, _ramda.always)([_ramda.T, _ramda.identity])])); var _default = toggle; exports.default = _default;