import { pipe, uniq } from 'ramda';
import curry1 from 'ramda/src/internal/_curry1';
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 = curry1(
pipe(
uniq,
lengthLte(1)
)
);
export default allEqual;