import { toReduceArguments, ReduceArguments } from "./reduceify"; import { every } from "./every"; export function arrAllEqualsTo( arr: readonly ArrOf[], to: ArrOf, areEquals: (e: ArrOf, to: ArrOf) => boolean = (e, to) => e === to ): boolean { return arr.reduce(...every(e => areEquals(e, to))); }; export function allEqualsTo( to: ArrOf, areEquals?: (e: ArrOf, to: ArrOf) => boolean ): ReduceArguments { return toReduceArguments(arrAllEqualsTo, to, areEquals); } export function allEqualsToFactory({ areEquals }: { areEquals: (e: T, to: T) => boolean }) { return { "allEqualsTo": (to: ArrOf) => allEqualsTo(to, areEquals) }; }