MCPcopy
hub / github.com/tdewolff/minify / parseRelationalOption

Function parseRelationalOption

_benchmarks/sample_echarts.js:90989–91035  ·  view source on GitHub ↗
(exprOption, getters)

Source from the content-addressed store, hash-verified

90987 }
90988
90989 function parseRelationalOption(exprOption, getters) {
90990 var errMsg = '';
90991 var valueGetterParam = getters.prepareGetValue(exprOption);
90992 var subCondList = [];
90993 var exprKeys = keys(exprOption);
90994 var parserName = exprOption.parser;
90995 var valueParser = parserName ? getRawValueParser(parserName) : null;
90996
90997 for (var i = 0; i < exprKeys.length; i++) {
90998 var keyRaw = exprKeys[i];
90999
91000 if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {
91001 continue;
91002 }
91003
91004 var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw;
91005 var condValueRaw = exprOption[keyRaw];
91006 var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;
91007 var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed);
91008
91009 if (!evaluator) {
91010 if ("development" !== 'production') {
91011 errMsg = makePrintable('Illegal relational operation: "' + keyRaw + '" in condition:', exprOption);
91012 }
91013
91014 throwError(errMsg);
91015 }
91016
91017 subCondList.push(evaluator);
91018 }
91019
91020 if (!subCondList.length) {
91021 if ("development" !== 'production') {
91022 errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);
91023 } // No relational operator always disabled in case of dangers result.
91024
91025
91026 throwError(errMsg);
91027 }
91028
91029 var cond = new RelationalConditionInternal();
91030 cond.valueGetterParam = valueGetterParam;
91031 cond.valueParser = valueParser;
91032 cond.getValue = getters.getValue;
91033 cond.subCondList = subCondList;
91034 return cond;
91035 }
91036
91037 function isObjectNotArray(val) {
91038 return isObject(val) && !isArrayLike(val);

Callers 1

parseOptionFunction · 0.85

Calls 6

getRawValueParserFunction · 0.85
hasOwnFunction · 0.85
createFilterComparatorFunction · 0.85
makePrintableFunction · 0.85
throwErrorFunction · 0.85
keysFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…