pg-query-config
Version:
Query Builder for PostgreSQL
41 lines (40 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCondition = void 0;
const wrappers_1 = require("./wrappers");
const operators_1 = require("./operators");
const createCondition = (object) => {
const conditionMap = new Map();
for (const prop in object) {
if (Array.isArray(object[prop])) {
conditionMap.set(prop, operators_1.In(object[prop]));
}
else if (object[prop] === null) {
conditionMap.set(prop, object[prop]);
}
else if (typeof object[prop] === 'object') {
createJsonCondition(wrappers_1.wrap(prop), object[prop], conditionMap);
}
else if (object[prop] !== undefined) {
conditionMap.set(prop, object[prop]);
}
}
return conditionMap;
};
exports.createCondition = createCondition;
const createJsonCondition = (key, object, conditionMap) => {
for (const prop in object) {
if (Array.isArray(object[prop])) {
conditionMap.set(`${key}->>'${prop}'`, operators_1.In(object[prop]));
}
else if (object[prop] === null) {
conditionMap.set(`${key}->>'${prop}'`, object[prop]);
}
else if (typeof object[prop] === 'object') {
createJsonCondition(`${key}->'${prop}'`, object[prop], conditionMap);
}
else if (object[prop] !== undefined) {
conditionMap.set(`${key}->>'${prop}'`, object[prop]);
}
}
};