import { reduce, get } from 'lodash' import { normalizeCase } from './string' export const search = (arr: any[], fields: string[], query: string, caseSensitive: boolean = false): any[] => arr.filter(item => reduce( fields, (matched, field) => Boolean((normalizeCase(`${get(item, field)}`, caseSensitive) .indexOf(normalizeCase(query, caseSensitive)) !== -1)) || matched, false, ))