UNPKG

dtable-utils

Version:

dtable common utils

65 lines (60 loc) 1.67 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var filterPredicate = require('../../constants/filter/filter-predicate.js'); /** * Filter text * @param {string} text * @param {string} filter_predicate * @param {string} filter_term * @param {string} userId * @returns bool */ var textFilter = function textFilter(text, _ref, userId) { var filter_predicate = _ref.filter_predicate, filter_term = _ref.filter_term; switch (filter_predicate) { case filterPredicate.FILTER_PREDICATE_TYPE.CONTAINS: { if (!filter_term) { return true; } if (!text) { return false; } return text.toString().toLowerCase().indexOf(filter_term.toLowerCase()) > -1; } case filterPredicate.FILTER_PREDICATE_TYPE.NOT_CONTAIN: { if (!filter_term || !text) { return true; } return text.toString().toLowerCase().indexOf(filter_term.toLowerCase()) < 0; } case filterPredicate.FILTER_PREDICATE_TYPE.IS: { return !filter_term || text === filter_term; } case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT: { return !filter_term || text !== filter_term; } case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY: { return !text; } case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY: { return !!text; } case filterPredicate.FILTER_PREDICATE_TYPE.IS_CURRENT_USER_ID: { if (!userId) return false; return text === userId; } default: { return false; } } }; exports.textFilter = textFilter;