UNPKG

evt

Version:

Type safe replacement for node's EventEmitter

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