UNPKG

@jitterbit/soql-parser-js

Version:
249 lines (248 loc) 10 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getWhereValue = exports.isArrayOperator = exports.isGroupByFn = exports.isGroupByField = exports.isOrderByFn = exports.isOrderByField = exports.isValueQueryCondition = exports.isNegationCondition = exports.isValueFunctionCondition = exports.isValueWithDateNLiteralCondition = exports.isValueWithDateLiteralCondition = exports.isValueCondition = exports.isWhereOrHavingClauseWithRightCondition = exports.isHavingClauseWithRightCondition = exports.isWhereClauseWithRightCondition = exports.isFieldSubquery = exports.isSubquery = exports.isComposeFieldTypeof = exports.isComposeFieldSubquery = exports.isComposeFieldRelationship = exports.isComposeFieldFunction = exports.isComposeField = exports.hasAlias = exports.isNestedParamAggregateFunction = exports.getParams = exports.generateParens = exports.pad = exports.getAsArrayStr = exports.getLastItem = exports.getIfTrue = exports.get = exports.isNil = exports.isObject = exports.isBoolean = exports.isNumber = exports.isStringArray = exports.isString = exports.isSubqueryFromFlag = exports.isToken = void 0; function isToken(val) { val = Array.isArray(val) ? val[0] : val; return val.image && true; } exports.isToken = isToken; function isSubqueryFromFlag(val, isSubquery) { return isSubquery; } exports.isSubqueryFromFlag = isSubqueryFromFlag; function isString(val) { return typeof val === 'string'; } exports.isString = isString; function isStringArray(val) { if (!val) { return false; } return val.every(function (item) { return isString(item); }); } exports.isStringArray = isStringArray; function isNumber(val) { return Number.isFinite(val); } exports.isNumber = isNumber; function isBoolean(val) { return typeof val === typeof true; } exports.isBoolean = isBoolean; function isObject(val) { return val instanceof Object; } exports.isObject = isObject; function isNil(val) { return val === null || val === undefined; } exports.isNil = isNil; function get(val, suffix, prefix) { return isNil(val) ? '' : "".concat(prefix || '').concat(val).concat(suffix || ''); } exports.get = get; function getIfTrue(val, returnStr) { return isBoolean(val) && val ? returnStr : ''; } exports.getIfTrue = getIfTrue; function getLastItem(arr) { return arr[arr.length - 1]; } exports.getLastItem = getLastItem; function getAsArrayStr(val, alwaysParens) { if (alwaysParens === void 0) { alwaysParens = false; } if (Array.isArray(val)) { if (val.length > 0) { return "(".concat(val.join(', '), ")"); } else { return alwaysParens ? '()' : ''; } } else { return alwaysParens ? "(".concat(val || '', ")") : val || ''; } } exports.getAsArrayStr = getAsArrayStr; function pad(val, len, left) { if (left === void 0) { left = 0; } var leftPad = left > 0 ? new Array(left).fill(' ').join('') : ''; if (val.length > len) { return "".concat(leftPad).concat(val); } else { return "".concat(leftPad).concat(val).concat(new Array(len - val.length).fill(' ').join('')); } } exports.pad = pad; function generateParens(count, character, joinCharacter) { if (joinCharacter === void 0) { joinCharacter = ''; } return isNumber(count) && count > 0 ? new Array(count).fill(character).join(joinCharacter) : ''; } exports.generateParens = generateParens; function getParams(functionFieldExp) { if (!functionFieldExp.parameters || functionFieldExp.parameters.length === 0) { return []; } if (isStringArray(functionFieldExp.parameters)) { return functionFieldExp.parameters; } if (isString(functionFieldExp.parameters[0])) { return [functionFieldExp.parameters[0]]; } return getParams(functionFieldExp.parameters[0]); } exports.getParams = getParams; function isNestedParamAggregateFunction(functionFieldExp) { if (!functionFieldExp.parameters || functionFieldExp.parameters.length === 0) { return false; } var parameter = functionFieldExp.parameters[0]; if (isString(parameter)) { return false; } return !!parameter.isAggregateFn; } exports.isNestedParamAggregateFunction = isNestedParamAggregateFunction; function hasAlias(value) { return value && !isNil(value.alias); } exports.hasAlias = hasAlias; function isComposeField(input) { return isString(input.field) && !Array.isArray(input.relationships) && !Array.isArray(input.conditions); } exports.isComposeField = isComposeField; function isComposeFieldFunction(input) { return !isNil(input.functionName || input.fn); } exports.isComposeFieldFunction = isComposeFieldFunction; function isComposeFieldRelationship(input) { return isString(input.field) && Array.isArray(input.relationships); } exports.isComposeFieldRelationship = isComposeFieldRelationship; function isComposeFieldSubquery(input) { return !isNil(input.subquery); } exports.isComposeFieldSubquery = isComposeFieldSubquery; function isComposeFieldTypeof(input) { return isString(input.field) && Array.isArray(input.conditions); } exports.isComposeFieldTypeof = isComposeFieldTypeof; function isSubquery(query) { return isString(query.relationshipName); } exports.isSubquery = isSubquery; function isFieldSubquery(value) { return !!value && !!value.type && value.type === 'FieldSubquery'; } exports.isFieldSubquery = isFieldSubquery; function isWhereClauseWithRightCondition(value) { return !!value && !!value.operator && !!value.right; } exports.isWhereClauseWithRightCondition = isWhereClauseWithRightCondition; function isHavingClauseWithRightCondition(value) { return !!value && !!value.operator && !!value.right; } exports.isHavingClauseWithRightCondition = isHavingClauseWithRightCondition; function isWhereOrHavingClauseWithRightCondition(value) { return !!value && !!value.operator && !!value.right; } exports.isWhereOrHavingClauseWithRightCondition = isWhereOrHavingClauseWithRightCondition; function isValueCondition(value) { return value && isString(value.field) && isString(value.operator) && !isNil(value.value); } exports.isValueCondition = isValueCondition; function isValueWithDateLiteralCondition(value) { return (value && isString(value.field) && isString(value.operator) && !isNil(value.value) && (value.literalType === 'DATE_LITERAL' || (Array.isArray(value.literalType) && value.literalType[0] === 'DATE_LITERAL'))); } exports.isValueWithDateLiteralCondition = isValueWithDateLiteralCondition; function isValueWithDateNLiteralCondition(value) { return value && isString(value.field) && isString(value.operator) && !isNil(value.value) && !isNil(value.dateLiteralVariable); } exports.isValueWithDateNLiteralCondition = isValueWithDateNLiteralCondition; function isValueFunctionCondition(value) { return value && !isNil(value.fn) && isString(value.operator) && !isNil(value.value); } exports.isValueFunctionCondition = isValueFunctionCondition; function isNegationCondition(value) { return value && isNumber(value.openParen) && isNil(value.operator) && isNil(value.field) && isNil(value.fn) && isNil(value.closeParen); } exports.isNegationCondition = isNegationCondition; function isValueQueryCondition(value) { return value && isString(value.field) && isString(value.operator) && !isNil(value.valueQuery) && isNil(value.value); } exports.isValueQueryCondition = isValueQueryCondition; function isOrderByField(value) { return value && !isNil(value.field); } exports.isOrderByField = isOrderByField; function isOrderByFn(value) { return value && !isNil(value.fn); } exports.isOrderByFn = isOrderByFn; function isGroupByField(value) { return value && !isNil(value.field); } exports.isGroupByField = isGroupByField; function isGroupByFn(value) { return value && !isNil(value.fn); } exports.isGroupByFn = isGroupByFn; function isArrayOperator(operator) { return ['IN', 'NOT IN', 'INCLUDES', 'EXCLUDES'].includes(operator); } exports.isArrayOperator = isArrayOperator; function getWhereValue(value, literalType, operator) { if (isNil(literalType)) { return value; } if (operator && literalType !== 'APEX_BIND_VARIABLE' && isArrayOperator(operator) && !Array.isArray(value)) { value = [value]; literalType = Array.isArray(literalType) ? literalType : [literalType]; } if (Array.isArray(literalType) && Array.isArray(value)) { return value.map(function (val, i) { return whereValueHelper(val, literalType === null || literalType === void 0 ? void 0 : literalType[i]); }); } else { if (Array.isArray(literalType)) { literalType = literalType[0]; } switch (literalType) { case 'STRING': { if (Array.isArray(value)) { return value.filter(Boolean).map(function (val) { return (isString(val) && val.startsWith("'") ? val : "'".concat(val !== null && val !== void 0 ? val : '', "'")); }); } else { value = String(value !== null && value !== void 0 ? value : ''); return isString(value) && value.startsWith("'") ? value : "'".concat(value !== null && value !== void 0 ? value : '', "'"); } } case 'APEX_BIND_VARIABLE': { return ":".concat(value); } case 'JITTERBIT_VARIABLE': { return value.text; } default: { return value; } } } } exports.getWhereValue = getWhereValue; function whereValueHelper(value, literalType) { switch (literalType) { case 'STRING': { return isString(value) && value.startsWith("'") ? value : "'".concat(value !== null && value !== void 0 ? value : '', "'"); } default: { return value; } } }