UNPKG

ramda-extension

Version:

Helpful functions built on top of the mighty Ramda

56 lines (50 loc) 1.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ramda = require("ramda"); var _flattenValues = _interopRequireDefault(require("./flattenValues")); var pipe2 = (0, _ramda.curryN)(2, _ramda.pipe); var useFilterFnAndWaitForValues = (0, _ramda.o)(pipe2(_flattenValues.default), _ramda.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 = (0, _ramda.useWith)((0, _ramda.flip)(_ramda.call), [useFilterFnAndWaitForValues, (0, _ramda.flip)(_ramda.filter)]); var _default = searchInArrayWith; exports.default = _default;