import { pipe, uniq, curryN } from 'ramda'; import lengthLte from './lengthLte'; // Original idea for this function was conceived by https://github.com/jackmellis // in https://github.com/char0n/ramda-adjunct/pull/513. /** * Returns true if all items in the list are equivalent using `R.equals` for equality comparisons. * * @func allEqual * @memberOf RA * @since {@link https://char0n.github.io/ramda-adjunct/2.9.0|v2.9.0} * @category List * @sig [a] -> Boolean * @param {Array} list The list of values * @return {boolean} * @see {@link https://ramdajs.com/docs/#equals|equals} * @example * * RA.allEqual([ 1, 2, 3, 4 ]); //=> false * RA.allEqual([ 1, 1, 1, 1 ]); //=> true * RA.allEqual([]); //=> true * */ const allEqual = curryN(1, pipe(uniq, lengthLte(1))); export default allEqual;