dbjs-persistence
Version:
Persistence for dbjs
23 lines (19 loc) • 898 B
JavaScript
;
var resolveKeyPath = require('dbjs/_setup/utils/resolve-key-path')
, isDigit = RegExp.prototype.test.bind(/[0-9]/);
module.exports = function (searchValue, value, id) {
var index = id.indexOf('/')
, keyPath = (index === -1) ? null : resolveKeyPath(id)
, path = (index === -1) ? null : id.slice(index + 1)
, itemKey = (keyPath !== path) ? path.slice(keyPath.length + 1) : null;
if (itemKey) {
if (searchValue == null) return false; // No support for multiple size validation
if (typeof searchValue === 'function') return false; // No support for function filter
if (!isDigit(itemKey)) itemKey = '3' + itemKey;
if (searchValue !== itemKey) return false;
return value === '11';
}
if (searchValue == null) return ((value !== '') && (value !== '0'));
if (typeof searchValue === 'function') return Boolean(searchValue(value));
return searchValue === value;
};