@react-awesome-query-builder/core
Version:
User-friendly query builder for React. Core
58 lines (57 loc) • 2.51 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import moment from "moment";
import { SqlString, sqlEmptyValue, mongoEmptyValue, spelEscape, spelFixList, stringifyForDisplay, wrapWithBrackets } from "../utils/export";
import { escapeRegExp } from "../utils/stuff";
import { getTitleInListValues } from "../utils/listValues";
// helpers for mongo format
export var mongoFormatOp1 = function mongoFormatOp1(mop, mc, not, field, _op, value, useExpr, valueSrc, valueType, opDef, operatorOptions, fieldDef) {
var $field = typeof field == "string" && !field.startsWith("$") ? "$" + field : field;
var mv = mc(value, fieldDef);
if (mv === undefined) return undefined;
if (not) {
if (!useExpr && (!mop || mop == "$eq")) return _defineProperty({}, field, {
"$ne": mv
}); // short form
return !useExpr ? _defineProperty({}, field, {
"$not": _defineProperty({}, mop, mv)
}) : {
"$not": _defineProperty({}, mop, [$field, mv])
};
} else {
if (!useExpr && (!mop || mop == "$eq")) return _defineProperty({}, field, mv); // short form
return !useExpr ? _defineProperty({}, field, _defineProperty({}, mop, mv)) : _defineProperty({}, mop, [$field, mv]);
}
};
export var mongoFormatOp2 = function mongoFormatOp2(mops, not, field, _op, values, useExpr, valueSrcs, valueTypes, opDef, operatorOptions, fieldDef) {
var $field = typeof field == "string" && !field.startsWith("$") ? "$" + field : field;
if (not) {
return !useExpr ? _defineProperty({}, field, {
"$not": _defineProperty(_defineProperty({}, mops[0], values[0]), mops[1], values[1])
}) : {
"$not": {
"$and": [_defineProperty({}, mops[0], [$field, values[0]]), _defineProperty({}, mops[1], [$field, values[1]])]
}
};
} else {
return !useExpr ? _defineProperty({}, field, _defineProperty(_defineProperty({}, mops[0], values[0]), mops[1], values[1])) : {
"$and": [_defineProperty({}, mops[0], [$field, values[0]]), _defineProperty({}, mops[1], [$field, values[1]])]
};
}
};
var ctx = {
utils: {
SqlString: SqlString,
moment: moment,
mongoFormatOp1: mongoFormatOp1,
mongoFormatOp2: mongoFormatOp2,
mongoEmptyValue: mongoEmptyValue,
escapeRegExp: escapeRegExp,
sqlEmptyValue: sqlEmptyValue,
stringifyForDisplay: stringifyForDisplay,
getTitleInListValues: getTitleInListValues,
spelEscape: spelEscape,
spelFixList: spelFixList,
wrapWithBrackets: wrapWithBrackets
}
};
export default ctx;