/** * Applies a list of filters to each function * returns all items that fulfill all filters */ export const filter = (list: T[], ...filters: Array<(item: T) => boolean>): T[] => list.filter((item: T) => filters.reduce((memo: boolean, fn: (item: T) => boolean) => memo && fn(item), true), )