baqend
Version:
Baqend JavaScript SDK
117 lines • 8.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Condition = void 0;
var Query_1 = require("./Query");
// eslint-disable-next-line @typescript-eslint/no-redeclare
exports.Condition = {
where: function (conditions) {
return this.addFilter(null, null, conditions);
},
equal: function (field, value) {
return this.addFilter(field, null, value);
},
notEqual: function (field, value) {
return this.addFilter(field, '$ne', value);
},
greaterThan: function (field, value) {
return this.addFilter(field, '$gt', value);
},
greaterThanOrEqualTo: function (field, value) {
return this.addFilter(field, '$gte', value);
},
lessThan: function (field, value) {
return this.addFilter(field, '$lt', value);
},
lessThanOrEqualTo: function (field, value) {
return this.addFilter(field, '$lte', value);
},
between: function (field, greaterValue, lessValue) {
return this
.addFilter(field, '$gt', greaterValue)
.addFilter(field, '$lt', lessValue);
},
in: function (field) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return this.addFilter(field, '$in', (0, Query_1.flatArgs)(args));
},
notIn: function (field) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return this.addFilter(field, '$nin', (0, Query_1.flatArgs)(args));
},
isNull: function (field) {
return this.equal(field, null);
},
isNotNull: function (field) {
return this.addFilter(field, '$exists', true)
.addFilter(field, '$ne', null);
},
containsAll: function (field) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return this.addFilter(field, '$all', (0, Query_1.flatArgs)(args));
},
mod: function (field, divisor, remainder) {
return this.addFilter(field, '$mod', [divisor, remainder]);
},
matches: function (field, regExp) {
var reg = regExp instanceof RegExp ? regExp : new RegExp(regExp);
if (reg.ignoreCase) {
throw new Error('RegExp.ignoreCase flag is not supported.');
}
if (reg.global) {
throw new Error('RegExp.global flag is not supported.');
}
if (reg.source.indexOf('^') !== 0) {
throw new Error('regExp must be an anchored expression, i.e. it must be started with a ^.');
}
var result = this.addFilter(field, '$regex', reg.source);
if (reg.multiline) {
result.addFilter(field, '$options', 'm');
}
return result;
},
size: function (field, size) {
return this.addFilter(field, '$size', size);
},
near: function (field, geoPoint, maxDistance) {
return this.addFilter(field, '$nearSphere', {
$geometry: {
type: 'Point',
coordinates: [geoPoint.longitude, geoPoint.latitude],
},
$maxDistance: maxDistance,
});
},
withinPolygon: function (field) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
var geoPoints = (0, Query_1.flatArgs)(args);
return this.addFilter(field, '$geoWithin', {
$geometry: {
type: 'Polygon',
coordinates: [geoPoints.map(function (geoPoint) { return [geoPoint.longitude, geoPoint.latitude]; })],
},
});
},
};
// aliases
Object.assign(exports.Condition, {
eq: exports.Condition.equal,
ne: exports.Condition.notEqual,
lt: exports.Condition.lessThan,
le: exports.Condition.lessThanOrEqualTo,
gt: exports.Condition.greaterThan,
ge: exports.Condition.greaterThanOrEqualTo,
containsAny: exports.Condition.in,
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZGl0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3F1ZXJ5L0NvbmRpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBbUM7QUFnVm5DLDJEQUEyRDtBQUM5QyxRQUFBLFNBQVMsR0FBNEI7SUFDaEQsS0FBSyxZQUF1QixVQUFVO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxLQUFLLFlBQXVCLEtBQUssRUFBRSxLQUFLO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxRQUFRLFlBQXVCLEtBQUssRUFBRSxLQUFLO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLFlBQXVCLEtBQUssRUFBRSxLQUFLO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxvQkFBb0IsWUFBdUIsS0FBSyxFQUFFLEtBQUs7UUFDckQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFFBQVEsWUFBdUIsS0FBSyxFQUFFLEtBQUs7UUFDekMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQixZQUF1QixLQUFLLEVBQUUsS0FBSztRQUNsRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFL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