UNPKG

@enonic/js-utils

Version:
92 lines (77 loc) 2.76 kB
// value/isBasicObject.ts var isBasicObject = (value) => typeof value === "object"; // value/isNumber.ts function isNumber(value) { return typeof value === "number" && isFinite(value); } // value/isStringLiteral.ts var isStringLiteral = (value) => typeof value === "string"; // value/isStringObject.ts var isStringObject = (value) => value instanceof String; // value/isString.ts var isString = (value) => isStringLiteral(value) || isStringObject(value); // value/isSymbol.ts var isSymbol = (value) => typeof value === "symbol"; // value/isPropertyKey.ts var isPropertyKey = (value) => isString(value) || isNumber(value) || isSymbol(value); // value/toStr.ts function toStr(value, replacer, space = 4) { return JSON.stringify(value, replacer, space); } // object/hasOwnProperty.ts function hasOwnProperty(obj, propKey) { if (!isBasicObject(obj)) { throw new Error(`First parameter to hasOwnProperty must be a basic Object! ${toStr(obj)}`); } if (!isPropertyKey(propKey)) { throw new Error(`Second parameter to hasOwnProperty must be a PropertyKey (string|number|symbol)! ${toStr(propKey)}`); } return obj.hasOwnProperty(propKey); } // value/isObject.ts var isObject = (value) => Object.prototype.toString.call(value).slice(8, -1) === "Object"; // array/includes.ts function sameValueZero(x, y) { return x === y || typeof x === "number" && typeof y === "number" && isNaN(x) && isNaN(y); } function includes(array, searchElement, fromIndex = 0) { if (array == null) { throw new TypeError('"array" is null or not defined'); } const o = Object(array); const len = o.length >>> 0; if (len === 0) { return false; } const n = fromIndex | 0; let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); while (k < len) { if (sameValueZero(o[k], searchElement)) { return true; } k++; } return false; } // storage/query/constants.ts var QUERY_OPERATOR_AND = "AND"; var QUERY_OPERATOR_OR = "OR"; var QUERY_OPERATORS = [ QUERY_OPERATOR_AND, QUERY_OPERATOR_OR ]; // storage/query/dsl/isDslOperator.ts function isDslOperator(value) { return isString(value) && includes(QUERY_OPERATORS, value); } // storage/query/dsl/isFulltextDslExpression.ts function isFulltextDslExpression(value) { return isObject(value) && hasOwnProperty(value, "fields") && hasOwnProperty(value, "query") && Array.isArray(value.fields) && value.fields.every(isString) && isString(value.query) && (hasOwnProperty(value, "operator") ? isDslOperator(value.operator) : true) && (hasOwnProperty(value, "boost") ? isNumber(value.boost) : true); } // storage/query/dsl/isNgramDslExpression.ts function isNgramDslExpression(value) { return isFulltextDslExpression(value); } export { isNgramDslExpression as default };