@qrvey/formula-lang
Version:
QFormula support for qrvey projects
55 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AND = void 0;
const constants_1 = require("../constants");
const isBooleanExpression_1 = require("../utils/isBooleanExpression");
/**
* `AND` Returns true if all expressions are truthy; otherwise, it will return false.
*/
exports.AND = {
identifier: 'AND',
recursiveStartIn: 1,
parameters: [
{
identifier: 'LOGICAL_EXPRESSION',
optional: false,
expectedPrimitive: constants_1.AST_PRIMITIVES.BOOLEAN,
validator: [isBooleanExpression_1.isBooleanExpression],
},
{
identifier: 'LOGICAL_EXPRESSION',
optional: false,
expectedPrimitive: constants_1.AST_PRIMITIVES.BOOLEAN,
validator: [isBooleanExpression_1.isBooleanExpression],
},
{
identifier: 'LOGICAL_EXPRESSION',
optional: true,
expectedPrimitive: constants_1.AST_PRIMITIVES.BOOLEAN,
validator: [isBooleanExpression_1.isBooleanExpression],
},
],
transpiler: {
elasticsearch,
snowflake,
redshift,
postgresql,
},
primitiveResult: constants_1.AST_PRIMITIVES.BOOLEAN,
};
function elasticsearch(...args) {
return `(${args.join(' && ')})`;
}
function sql(...args) {
return `(${args.join(' AND ')})`;
}
function snowflake(...args) {
return sql(...args);
}
function redshift(...args) {
return sql(...args);
}
function postgresql(...args) {
return sql(...args);
}
//# sourceMappingURL=and.js.map