nano-queries
Version:
Simple and powerful database-agnostic query builder (SQL & NoSQL)
32 lines (30 loc) • 3.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WhereClause = void 0;
const Query_1 = require("../core/Query");
const QueryBuilder_1 = require("../QueryBuilder");
const ConditionClause_1 = require("./ConditionClause");
class WhereClause extends Query_1.Query {
condition = new ConditionClause_1.ConditionClause();
constructor() {
super();
}
size() {
return this.condition.size();
}
and(...query) {
this.condition.and(...query);
return this;
}
or(...query) {
this.condition.or(...query);
return this;
}
getSegments() {
if (this.condition.size() === 0)
return [];
return new QueryBuilder_1.QueryBuilder({ join: ' ' }).raw('WHERE', this.condition).getSegments();
}
}
exports.WhereClause = WhereClause;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNxbC9XaGVyZUNsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBc0M7QUFDdEMsa0RBQStDO0FBRS9DLHVEQUFvRDtBQUVwRCxNQUFhLFdBQVksU0FBUSxhQUFLO0lBQ2xCLFNBQVMsR0FBRyxJQUFJLGlDQUFlLEVBQUUsQ0FBQztJQUNyRDtRQUNDLEtBQUssRUFBRSxDQUFDO0lBQ1QsQ0FBQztJQUVNLElBQUk7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFHLEtBQTBCO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFFN0IsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRU0sRUFBRSxDQUFDLEdBQUcsS0FBMEI7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUU1QixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFTSxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFM0MsT0FBTyxJQUFJLDJCQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuRixDQUFDO0NBQ0Q7QUEzQkQsa0NBMkJDIiwiZmlsZSI6InNxbC9XaGVyZUNsYXVzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5IH0gZnJvbSAnLi4vY29yZS9RdWVyeSc7XG5pbXBvcnQgeyBRdWVyeUJ1aWxkZXIgfSBmcm9tICcuLi9RdWVyeUJ1aWxkZXInO1xuaW1wb3J0IHsgSVF1ZXJ5LCBRdWVyeVNlZ21lbnQsIFJhd1F1ZXJ5UGFyYW1ldGVyIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgQ29uZGl0aW9uQ2xhdXNlIH0gZnJvbSAnLi9Db25kaXRpb25DbGF1c2UnO1xuXG5leHBvcnQgY2xhc3MgV2hlcmVDbGF1c2UgZXh0ZW5kcyBRdWVyeSBpbXBsZW1lbnRzIElRdWVyeSB7XG5cdHByb3RlY3RlZCByZWFkb25seSBjb25kaXRpb24gPSBuZXcgQ29uZGl0aW9uQ2xhdXNlKCk7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRwdWJsaWMgc2l6ZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5jb25kaXRpb24uc2l6ZSgpO1xuXHR9XG5cblx0cHVibGljIGFuZCguLi5xdWVyeTogUmF3UXVlcnlQYXJhbWV0ZXJbXSkge1xuXHRcdHRoaXMuY29uZGl0aW9uLmFuZCguLi5xdWVyeSk7XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBvciguLi5xdWVyeTogUmF3UXVlcnlQYXJhbWV0ZXJbXSkge1xuXHRcdHRoaXMuY29uZGl0aW9uLm9yKC4uLnF1ZXJ5KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGdldFNlZ21lbnRzKCk6IFF1ZXJ5U2VnbWVudFtdIHtcblx0XHRpZiAodGhpcy5jb25kaXRpb24uc2l6ZSgpID09PSAwKSByZXR1cm4gW107XG5cblx0XHRyZXR1cm4gbmV3IFF1ZXJ5QnVpbGRlcih7IGpvaW46ICcgJyB9KS5yYXcoJ1dIRVJFJywgdGhpcy5jb25kaXRpb24pLmdldFNlZ21lbnRzKCk7XG5cdH1cbn1cbiJdfQ==