UNPKG

nano-queries

Version:

Simple and powerful database-agnostic query builder (SQL & NoSQL)

32 lines (30 loc) 3.08 kB
"use strict"; 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==