@onesy/utils
Version:
29 lines (28 loc) • 1.33 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const is_1 = __importDefault(require("./is"));
const isValid_1 = __importDefault(require("./isValid"));
const getObjectValue_1 = __importDefault(require("./getObjectValue"));
const checkObjectFilters = (value, filters = [], operator = 'or') => {
// If there are no filters,
// it means that the check passes,
// as there is nothing to filter
if (!filters ||
(!(0, is_1.default)('array', filters) || !filters.length))
return true;
const result = filters[operator === 'or' ? 'some' : 'every'](filter => {
const valueObject = (0, getObjectValue_1.default)(value, filter.field);
// If value doesn't exists (it is undefined),
// and operator is of not-* type in that use case
// any value is not undefined thus this check's true
if (valueObject === undefined &&
filter.operator.indexOf('not-') === 0)
return true;
return (0, isValid_1.default)('compare', undefined, { valueA: valueObject, valueB: filter.value, operator: filter.operator });
});
return result;
};
exports.default = checkObjectFilters;
;