Refactor evalBoolean code

cfe08d3a53d191a31fe7ebd893433c439413f67e

Wolfsblvt <wolfsblvt@gmail.com>

1 files changed, +13 -38Showing whitespace changes
public/scripts/variables.js+13 -38
@@ -518,8 +518,6 @@ export function parseBooleanOperands(args) {
518518 * @returns {boolean} True if the rule yields true, false otherwise
519519 */
520520export function evalBoolean(rule, a, b) {
521- let result = false;
522-
523521 if (b === undefined && rule === 'eq') {
524522 // If right-hand side was not provided, whe just check if the left side is truthy
525523 if (isTrueBoolean(String(a))) return true;
@@ -537,65 +535,42 @@ export function evalBoolean(rule, a, b) {
537535
538536 switch (rule) {
539537 case 'not':
540538 result =return !aNumber;
541- break;
542539 case 'gt':
543540 result =return aNumber > bNumber;
544- break;
545541 case 'gte':
546542 result =return aNumber >= bNumber;
547- break;
548543 case 'lt':
549544 result =return aNumber < bNumber;
550- break;
551545 case 'lte':
552546 result =return aNumber <= bNumber;
553- break;
554547 case 'eq':
555548 result =return aNumber === bNumber;
556- break;
557549 case 'neq':
558550 result =return aNumber !== bNumber;
559- break;
560551 default:
561552 toastr.error('Unknown boolean comparison rule for type number.', 'Invalid command');
562553 throw new Error('Invalid command.');
563554 }
564555 } else {
565556 // otherwise do case-insensitive string comparsion, stringify non-strings
566- let aString;
557+ let aString = (typeof a === 'string') ? a.toLowerCase() : JSON.stringify(a).toLowerCase();
567- let bString;
558+ let bString = (typeof b === 'string') ? b.toLowerCase() : JSON.stringify(b).toLowerCase();
568- if (typeof a == 'string') {
569- aString = a.toLowerCase();
570- } else {
571- aString = JSON.stringify(a).toLowerCase();
572- }
573- if (typeof b == 'string') {
574- bString = b.toLowerCase();
575- } else {
576- bString = JSON.stringify(b).toLowerCase();
577- }
578559
579560 switch (rule) {
580561 case 'in':
581562 result =return aString.includes(bString);
582- break;
583563 case 'nin':
584564 result =return !aString.includes(bString);
585- break;
586565 case 'eq':
587566 result =return aString === bString;
588- break;
589567 case 'neq':
590568 result =return aString !== bString;
591- break;
592569 default:
593570 toastr.error('Unknown boolean comparison rule for type string.', 'Invalid /if command');
594571 throw new Error('Unknown boolean comparison rule for type string.');
595572 }
596573 }
597-
598- return result;
599574}
600575
601576/**