payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
57 lines (56 loc) • 4.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "transformWhereQuery", {
enumerable: true,
get: function() {
return transformWhereQuery;
}
});
const transformWhereQuery = (whereQuery)=>{
if (!whereQuery) {
return {};
}
// Check if 'whereQuery' has 'or' field but no 'and'. This is the case for "correct" queries
if (whereQuery.or && !whereQuery.and) {
return {
or: whereQuery.or.map((query)=>{
// ...but if the or query does not have an and, we need to add it
if (!query.and) {
return {
and: [
query
]
};
}
return query;
})
};
}
// Check if 'whereQuery' has 'and' field but no 'or'.
if (whereQuery.and && !whereQuery.or) {
return {
or: [
{
and: whereQuery.and
}
]
};
}
// Check if 'whereQuery' has neither 'or' nor 'and'.
if (!whereQuery.or && !whereQuery.and) {
return {
or: [
{
and: [
whereQuery
]
}
]
};
}
// If 'whereQuery' has 'or' and 'and', just return it as it is.
return whereQuery;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1doZXJlQnVpbGRlci90cmFuc2Zvcm1XaGVyZVF1ZXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgV2hlcmUgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcydcblxuLyoqXG4gKiBTb21ldGhpbmcgbGlrZSBbb3JdWzBdW2FuZF1bMF1bdGV4dF1bZXF1YWxzXT1leGFtcGxlJTIwcG9zdCB3aWxsIHdvcmsgYW5kIHBhc3MgdGhyb3VnaCB0aGUgdmFsaWRhdGVXaGVyZVF1ZXJ5IGNoZWNrLlxuICogSG93ZXZlciwgc29tZXRoaW5nIGxpa2UgW3RleHRdW2VxdWFsc109ZXhhbXBsZSUyMHBvc3Qgd2lsbCBub3Qgd29yayBhbmQgd2lsbCBmYWlsIHRoZSB2YWxpZGF0ZVdoZXJlUXVlcnkgY2hlY2ssXG4gKiBldmVuIHRob3VnaCBpdCBpcyBhIHZhbGlkIFdoZXJlIHF1ZXJ5LiBUaGlzIG5lZWRzIHRvIGJlIHRyYW5zZm9ybWVkIGhlcmUuXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1XaGVyZVF1ZXJ5ID0gKHdoZXJlUXVlcnkpOiBXaGVyZSA9PiB7XG4gIGlmICghd2hlcmVRdWVyeSkge1xuICAgIHJldHVybiB7fVxuICB9XG4gIC8vIENoZWNrIGlmICd3aGVyZVF1ZXJ5JyBoYXMgJ29yJyBmaWVsZCBidXQgbm8gJ2FuZCcuIFRoaXMgaXMgdGhlIGNhc2UgZm9yIFwiY29ycmVjdFwiIHF1ZXJpZXNcbiAgaWYgKHdoZXJlUXVlcnkub3IgJiYgIXdoZXJlUXVlcnkuYW5kKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9yOiB3aGVyZVF1ZXJ5Lm9yLm1hcCgocXVlcnkpID0+IHtcbiAgICAgICAgLy8gLi4uYnV0IGlmIHRoZSBvciBxdWVyeSBkb2VzIG5vdCBoYXZlIGFuIGFuZCwgd2UgbmVlZCB0byBhZGQgaXRcbiAgICAgICAgaWYgKCFxdWVyeS5hbmQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYW5kOiBbcXVlcnldLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXVlcnlcbiAgICAgIH0pLFxuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmICd3aGVyZVF1ZXJ5JyBoYXMgJ2FuZCcgZmllbGQgYnV0IG5vICdvcicuXG4gIGlmICh3aGVyZVF1ZXJ5LmFuZCAmJiAhd2hlcmVRdWVyeS5vcikge1xuICAgIHJldHVybiB7XG4gICAgICBvcjogW1xuICAgICAgICB7XG4gICAgICAgICAgYW5kOiB3aGVyZVF1ZXJ5LmFuZCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJ3doZXJlUXVlcnknIGhhcyBuZWl0aGVyICdvcicgbm9yICdhbmQnLlxuICBpZiAoIXdoZXJlUXVlcnkub3IgJiYgIXdoZXJlUXVlcnkuYW5kKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9yOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhbmQ6IFt3aGVyZVF1ZXJ5XSwgLy8gdG9wLWxldmVsIHNpYmxpbmdzIGFyZSBjb25zaWRlcmVkICdhbmQnXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH1cbiAgfVxuXG4gIC8vIElmICd3aGVyZVF1ZXJ5JyBoYXMgJ29yJyBhbmQgJ2FuZCcsIGp1c3QgcmV0dXJuIGl0IGFzIGl0IGlzLlxuICByZXR1cm4gd2hlcmVRdWVyeVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVdoZXJlUXVlcnkiLCJ3aGVyZVF1ZXJ5Iiwib3IiLCJhbmQiLCJtYXAiLCJxdWVyeSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFPYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsc0JBQXNCLENBQUNDO0lBQ2xDLElBQUksQ0FBQ0EsWUFBWTtRQUNmLE9BQU8sQ0FBQztJQUNWO0lBQ0EsNEZBQTRGO0lBQzVGLElBQUlBLFdBQVdDLEVBQUUsSUFBSSxDQUFDRCxXQUFXRSxHQUFHLEVBQUU7UUFDcEMsT0FBTztZQUNMRCxJQUFJRCxXQUFXQyxFQUFFLENBQUNFLEdBQUcsQ0FBQyxDQUFDQztnQkFDckIsaUVBQWlFO2dCQUNqRSxJQUFJLENBQUNBLE1BQU1GLEdBQUcsRUFBRTtvQkFDZCxPQUFPO3dCQUNMQSxLQUFLOzRCQUFDRTt5QkFBTTtvQkFDZDtnQkFDRjtnQkFDQSxPQUFPQTtZQUNUO1FBQ0Y7SUFDRjtJQUVBLHFEQUFxRDtJQUNyRCxJQUFJSixXQUFXRSxHQUFHLElBQUksQ0FBQ0YsV0FBV0MsRUFBRSxFQUFFO1FBQ3BDLE9BQU87WUFDTEEsSUFBSTtnQkFDRjtvQkFDRUMsS0FBS0YsV0FBV0UsR0FBRztnQkFDckI7YUFDRDtRQUNIO0lBQ0Y7SUFFQSxvREFBb0Q7SUFDcEQsSUFBSSxDQUFDRixXQUFXQyxFQUFFLElBQUksQ0FBQ0QsV0FBV0UsR0FBRyxFQUFFO1FBQ3JDLE9BQU87WUFDTEQsSUFBSTtnQkFDRjtvQkFDRUMsS0FBSzt3QkFBQ0Y7cUJBQVc7Z0JBQ25CO2FBQ0Q7UUFDSDtJQUNGO0lBRUEsK0RBQStEO0lBQy9ELE9BQU9BO0FBQ1QifQ==