ramda-extension
Version:
Helpful functions built on top of the mighty Ramda
34 lines (28 loc) • 1.07 kB
JavaScript
;
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;