Enhance comparators for memory connector
This commit is contained in:
parent
04e1256b8b
commit
a0a9fae9c6
|
@ -377,24 +377,61 @@ function applyFilter(filter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (example.inq) {
|
if (example.inq) {
|
||||||
if (!value) return false;
|
// if (!value) return false;
|
||||||
for (var i = 0; i < example.inq.length; i += 1) {
|
for (var i = 0; i < example.inq.length; i++) {
|
||||||
if (example.inq[i] == value) return true;
|
if (example.inq[i] == value) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isNum(example.gt) && example.gt < value) return true;
|
if (testInEquality(example, value)) {
|
||||||
if (isNum(example.gte) && example.gte <= value) return true;
|
return true;
|
||||||
if (isNum(example.lt) && example.lt > value) return true;
|
}
|
||||||
if (isNum(example.lte) && example.lte >= value) return true;
|
|
||||||
}
|
}
|
||||||
// not strict equality
|
// not strict equality
|
||||||
return (example !== null ? example.toString() : example) == (value !== null ? value.toString() : value);
|
return (example !== null ? example.toString() : example) == (value !== null ? value.toString() : value);
|
||||||
}
|
}
|
||||||
|
|
||||||
function isNum(n) {
|
/**
|
||||||
return typeof n === 'number';
|
* Compare two values
|
||||||
|
* @param {*} val1 The 1st value
|
||||||
|
* @param {*} val2 The 2nd value
|
||||||
|
* @returns {number} 0: =, postive: >, negative <
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function compare(val1, val2) {
|
||||||
|
if (typeof val1 === 'number') {
|
||||||
|
return val1 - val2;
|
||||||
|
}
|
||||||
|
if (typeof val1 === 'string') {
|
||||||
|
return (val1 > val2) ? 1 : ((val1 < val2) ? -1 : 0);
|
||||||
|
}
|
||||||
|
if (typeof val1 === 'boolean') {
|
||||||
|
return val1 - val2;
|
||||||
|
}
|
||||||
|
if (val1 instanceof Date) {
|
||||||
|
return val1.getTime() - ((val2 && val2.getTime()) || 0);
|
||||||
|
}
|
||||||
|
// Return NaN if we don't know how to compare
|
||||||
|
return (val1 === val2) ? 0 : NaN;
|
||||||
|
}
|
||||||
|
|
||||||
|
function testInEquality(example, val) {
|
||||||
|
if ('gt' in example) {
|
||||||
|
return compare(example.gt, val) > 0;
|
||||||
|
}
|
||||||
|
if ('gte' in example) {
|
||||||
|
return compare(example.gte, val) >= 0;
|
||||||
|
}
|
||||||
|
if ('lt' in example) {
|
||||||
|
return compare(example.lt, val) < 0;
|
||||||
|
}
|
||||||
|
if ('lte' in example) {
|
||||||
|
return compare(example.lte, val) <= 0;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue