dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
71 lines (70 loc) • 2.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.expressCondition = void 0;
const index_js_1 = require("../../../../errors/index.js");
const beginsWith_js_1 = require("./conditions/beginsWith.js");
const between_js_1 = require("./conditions/between.js");
const contains_js_1 = require("./conditions/contains.js");
const eq_js_1 = require("./conditions/eq.js");
const exists_js_1 = require("./conditions/exists.js");
const in_js_1 = require("./conditions/in.js");
const logical_js_1 = require("./conditions/logical.js");
const range_js_1 = require("./conditions/range.js");
const type_js_1 = require("./conditions/type.js");
const expressCondition = (condition, prefix = '', state = {
namesCursor: 1,
valuesCursor: 1,
tokens: {},
ExpressionAttributeNames: {},
ExpressionAttributeValues: {}
}) => {
if ('or' in condition) {
return (0, logical_js_1.expressOrCondition)(condition, prefix, state);
}
if ('and' in condition) {
return (0, logical_js_1.expressAndCondition)(condition, prefix, state);
}
if ('not' in condition) {
return (0, logical_js_1.expressNotCondition)(condition, prefix, state);
}
if ('eq' in condition) {
return (0, eq_js_1.expressEqCondition)(condition, prefix, state);
}
if ('ne' in condition) {
return (0, eq_js_1.expressNeCondition)(condition, prefix, state);
}
if ('gte' in condition) {
return (0, range_js_1.expressGteCondition)(condition, prefix, state);
}
if ('gt' in condition) {
return (0, range_js_1.expressGtCondition)(condition, prefix, state);
}
if ('lte' in condition) {
return (0, range_js_1.expressLteCondition)(condition, prefix, state);
}
if ('lt' in condition) {
return (0, range_js_1.expressLtCondition)(condition, prefix, state);
}
if ('between' in condition) {
return (0, between_js_1.expressBetweenCondition)(condition, prefix, state);
}
if ('beginsWith' in condition) {
return (0, beginsWith_js_1.expressBeginsWithCondition)(condition, prefix, state);
}
if ('in' in condition) {
return (0, in_js_1.expressInCondition)(condition, prefix, state);
}
if ('contains' in condition) {
return (0, contains_js_1.expressContainsCondition)(condition, prefix, state);
}
if ('exists' in condition) {
return (0, exists_js_1.expressExistsCondition)(condition, prefix, state);
}
if ('type' in condition) {
return (0, type_js_1.expressTypeCondition)(condition, prefix, state);
}
throw new index_js_1.DynamoDBToolboxError('actions.invalidCondition', {
message: 'Invalid condition: Unable to detect valid condition type.'
});
};
exports.expressCondition = expressCondition;