/** @module transducers.ts */ import { Predicate } from './helper-types' export const mapEntryValues = ( fn: ( a: VA ) => VB ) => ( entries: Array<[K, VA]> ): Array<[K, VB]> => entries.map( ( [ k, v ] ) => [ k, fn( v ) ] as [K, VB] ) /** * Todo */ export const mapEntryKeys = ( fn: ( a: KA ) => KB ) => ( entries: Array<[KA, V]> ): Array<[KB, V]> => entries.map( ( [ k, v ] ) => [ fn( k ), v ] as [KB, V] ) /** * Todo */ export const filterEntryValues = ( fn: Predicate ) => ( entries: Array<[K, V]> ): Array<[K, V]> => entries.filter( ( [ k, v ] ) => fn( v ) ) /** * Todo */ export const filterEntryKeys = ( fn: Predicate ) => ( entries: Array<[K, V]> ): Array<[K, V]> => entries.filter( ( [ k, v ] ) => fn( k ) )