@react-awesome-query-builder/core
Version:
User-friendly query builder for React. Core
59 lines (56 loc) • 3.01 kB
JavaScript
;
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.loadFromSpel = exports._loadFromSpel = void 0;
var _spel2js = require("spel2js");
var _tree = require("../tree");
var _conv = require("./conv");
var _convert = require("./convert");
var _postprocess = require("./postprocess");
var _builder = require("./builder");
var Utils = _interopRequireWildcard(require("../../utils"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
var logger = Utils.OtherUtils.logger;
var extendConfig = Utils.ConfigUtils.extendConfig;
// https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/expressions.html#expressions
var loadFromSpel = exports.loadFromSpel = function loadFromSpel(spelStr, config) {
return _loadFromSpel(spelStr, config, true);
};
var _loadFromSpel = exports._loadFromSpel = function _loadFromSpel(spelStr, config) {
var returnErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
//meta is mutable
var meta = {
errors: []
};
var extendedConfig = extendConfig(config, undefined, false);
var conv = (0, _conv.buildConv)(extendedConfig);
var compiledExpression;
var convertedObj;
var jsTree = undefined;
try {
var compileRes = _spel2js.SpelExpressionEvaluator.compile(spelStr);
compiledExpression = compileRes._compiledExpression;
} catch (e) {
meta.errors.push(e);
}
if (compiledExpression) {
//logger.debug("compiledExpression:", compiledExpression);
convertedObj = (0, _postprocess.postprocessCompiled)(compiledExpression, meta);
logger.debug("convertedObj:", convertedObj, meta);
jsTree = (0, _convert.convertToTree)(convertedObj, conv, extendedConfig, meta);
if (jsTree && jsTree.type != "group" && jsTree.type != "switch_group") {
jsTree = (0, _builder.wrapInDefaultConj)(jsTree, extendedConfig, convertedObj["not"]);
}
logger.debug("jsTree:", jsTree);
}
var immTree = jsTree ? (0, _tree.loadTree)(jsTree) : undefined;
if (returnErrors) {
return [immTree, meta.errors];
} else {
if (meta.errors.length) console.warn("Errors while importing from SpEL:", meta.errors);
return immTree;
}
};