ramda-extension
Version:
Helpful functions built on top of the mighty Ramda
44 lines (43 loc) • 1.08 kB
JavaScript
import { filter, flip, any, call, o, pipe, curryN, useWith } from 'ramda';
import flattenValues from './flattenValues';
var pipe2 = /*#__PURE__*/curryN(2, pipe);
var useFilterFnAndWaitForValues = /*#__PURE__*/o( /*#__PURE__*/pipe2(flattenValues), any);
/**
* Perform fulltext search with given search function.
*
* @func
* @category Array
*
* @param {Array} searchFn
* @param {Array} value
* @return {Array} filtered array of values
*
* @example
*
* R_.searchInArrayWith(R.contains('hi'),[
* 'hi',
* { foo: 'bar' },
* { foo: 'hi' },
* {
* foo: {
* bar: ['cuuus', { foo: 'hi' }],
* },
* },
* ['haha', 'hi'],
* ['haha', { foo: 'hi' }],
* ]);
* // [
* // 'hi',
* // { foo: 'hi' },
* // {
* // foo: {
* // bar: ['cuuus', { foo: 'hi' }],
* // },
* // },
* // ['haha', 'hi'],
* // ['haha', { foo: 'hi' }],
* // ]
*
*/
var searchInArrayWith = /*#__PURE__*/useWith( /*#__PURE__*/flip(call), [useFilterFnAndWaitForValues, /*#__PURE__*/flip(filter)]);
export default searchInArrayWith;