/** * Convenience utility takes a type-safe mapping function, and returns a list mapping function * @param {(param: T) => U} mappingFunction maps a single type T to type U * @return {(array: Array) => Array} */ const arrayMap = (mappingFunction: (param: T) => U): ((array: Array) => Array) => (array = []) => array.map(mappingFunction); /** * Convenience utility takes a type-safe filter function, and returns a list filtering function * @param {(param: T) => boolean} filtrationFunction * @return {(array: Array) => Array} */ const arrayFilter = (filtrationFunction: (param: T) => boolean): ((array: Array) => Array) => (array = []) => array.filter(filtrationFunction); /** * Duplicate check using every to short-circuit iteration * @param {Array} [list = []] list to check for dupes * @return {boolean} true is unique */ const isListUnique = (list: Array = []): boolean => new Set(list).size === list.length; export { arrayMap, arrayFilter, isListUnique };