@cloudbase/js-sdk
Version:
cloudbase javascript sdk
90 lines (89 loc) • 3.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isKnownLogicCommand = exports.isLogicCommand = exports.LogicCommand = exports.LOGIC_COMMANDS_LITERAL = exports.NOR = exports.NOT = exports.OR = exports.AND = void 0;
var symbol_1 = require("../helper/symbol");
var query_1 = require("./query");
exports.AND = 'and';
exports.OR = 'or';
exports.NOT = 'not';
exports.NOR = 'nor';
var LOGIC_COMMANDS_LITERAL;
(function (LOGIC_COMMANDS_LITERAL) {
LOGIC_COMMANDS_LITERAL["AND"] = "and";
LOGIC_COMMANDS_LITERAL["OR"] = "or";
LOGIC_COMMANDS_LITERAL["NOT"] = "not";
LOGIC_COMMANDS_LITERAL["NOR"] = "nor";
})(LOGIC_COMMANDS_LITERAL = exports.LOGIC_COMMANDS_LITERAL || (exports.LOGIC_COMMANDS_LITERAL = {}));
var LogicCommand = (function () {
function LogicCommand(operator, operands, fieldName) {
this._internalType = symbol_1.SYMBOL_LOGIC_COMMAND;
Object.defineProperties(this, {
_internalType: {
enumerable: false,
configurable: false,
},
});
this.operator = operator;
this.operands = operands;
this.fieldName = fieldName || symbol_1.SYMBOL_UNSET_FIELD_NAME;
if (this.fieldName !== symbol_1.SYMBOL_UNSET_FIELD_NAME) {
if (Array.isArray(operands)) {
operands = operands.slice();
this.operands = operands;
for (var i = 0, len = operands.length; i < len; i++) {
var query = operands[i];
if (isLogicCommand(query) || (0, query_1.isQueryCommand)(query)) {
operands[i] = query._setFieldName(this.fieldName);
}
}
}
else {
var query = operands;
if (isLogicCommand(query) || (0, query_1.isQueryCommand)(query)) {
operands = query._setFieldName(this.fieldName);
}
}
}
}
LogicCommand.prototype._setFieldName = function (fieldName) {
var operands = this.operands.map(function (operand) {
if (operand instanceof LogicCommand) {
return operand._setFieldName(fieldName);
}
else {
return operand;
}
});
var command = new LogicCommand(this.operator, operands, fieldName);
return command;
};
LogicCommand.prototype.and = function () {
var __expressions__ = [];
for (var _i = 0; _i < arguments.length; _i++) {
__expressions__[_i] = arguments[_i];
}
var expressions = Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);
expressions.unshift(this);
return new LogicCommand(LOGIC_COMMANDS_LITERAL.AND, expressions, this.fieldName);
};
LogicCommand.prototype.or = function () {
var __expressions__ = [];
for (var _i = 0; _i < arguments.length; _i++) {
__expressions__[_i] = arguments[_i];
}
var expressions = Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);
expressions.unshift(this);
return new LogicCommand(LOGIC_COMMANDS_LITERAL.OR, expressions, this.fieldName);
};
return LogicCommand;
}());
exports.LogicCommand = LogicCommand;
function isLogicCommand(object) {
return object && (object instanceof LogicCommand) && (object._internalType === symbol_1.SYMBOL_LOGIC_COMMAND);
}
exports.isLogicCommand = isLogicCommand;
function isKnownLogicCommand(object) {
return isLogicCommand && (object.operator.toUpperCase() in LOGIC_COMMANDS_LITERAL);
}
exports.isKnownLogicCommand = isKnownLogicCommand;
exports.default = LogicCommand;