nano-queries
Version:
Simple and powerful database-agnostic query builder (SQL & NoSQL)
27 lines (25 loc) • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LimitClause = void 0;
const Query_1 = require("../core/Query");
const QueryBuilder_1 = require("../QueryBuilder");
class LimitClause extends Query_1.Query {
state;
constructor(state) {
super();
this.state = state;
}
getSegments() {
const { limit, offset } = this.state;
const query = new QueryBuilder_1.QueryBuilder({ join: ' ' });
if (limit) {
query.raw('LIMIT').value(limit);
}
if (offset) {
query.raw('OFFSET').value(offset);
}
return query.getSegments();
}
}
exports.LimitClause = LimitClause;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNxbC9MaW1pdENsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBc0M7QUFDdEMsa0RBQStDO0FBRy9DLE1BQWEsV0FBWSxTQUFRLGFBQUs7SUFDcEIsS0FBSyxDQUFDO0lBQ3ZCLFlBQVksS0FBMEM7UUFDckQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU0sV0FBVztRQUNqQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFckMsTUFBTSxLQUFLLEdBQUcsSUFBSSwyQkFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFOUMsSUFBSSxLQUFLLEVBQUU7WUFDVixLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztRQUVELElBQUksTUFBTSxFQUFFO1lBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEM7UUFFRCxPQUFPLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0Q7QUF0QkQsa0NBc0JDIiwiZmlsZSI6InNxbC9MaW1pdENsYXVzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5IH0gZnJvbSAnLi4vY29yZS9RdWVyeSc7XG5pbXBvcnQgeyBRdWVyeUJ1aWxkZXIgfSBmcm9tICcuLi9RdWVyeUJ1aWxkZXInO1xuaW1wb3J0IHsgSVF1ZXJ5LCBRdWVyeVNlZ21lbnQgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBMaW1pdENsYXVzZSBleHRlbmRzIFF1ZXJ5IGltcGxlbWVudHMgSVF1ZXJ5IHtcblx0cHJpdmF0ZSByZWFkb25seSBzdGF0ZTtcblx0Y29uc3RydWN0b3Ioc3RhdGU6IHsgbGltaXQ/OiBudW1iZXI7IG9mZnNldD86IG51bWJlciB9KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLnN0YXRlID0gc3RhdGU7XG5cdH1cblxuXHRwdWJsaWMgZ2V0U2VnbWVudHMoKTogUXVlcnlTZWdtZW50W10ge1xuXHRcdGNvbnN0IHsgbGltaXQsIG9mZnNldCB9ID0gdGhpcy5zdGF0ZTtcblxuXHRcdGNvbnN0IHF1ZXJ5ID0gbmV3IFF1ZXJ5QnVpbGRlcih7IGpvaW46ICcgJyB9KTtcblxuXHRcdGlmIChsaW1pdCkge1xuXHRcdFx0cXVlcnkucmF3KCdMSU1JVCcpLnZhbHVlKGxpbWl0KTtcblx0XHR9XG5cblx0XHRpZiAob2Zmc2V0KSB7XG5cdFx0XHRxdWVyeS5yYXcoJ09GRlNFVCcpLnZhbHVlKG9mZnNldCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHF1ZXJ5LmdldFNlZ21lbnRzKCk7XG5cdH1cbn1cbiJdfQ==