UNPKG

@react-awesome-query-builder/core

Version:
58 lines (57 loc) 2.51 kB
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;