sedk-postgres
Version:
Simple SQL builder and validator
45 lines • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LimitStep = void 0;
const OffsetStep_1 = require("./OffsetStep");
const singletoneConstants_1 = require("../../singletoneConstants");
const errors_1 = require("../../errors");
const ReturningStep_1 = require("../ReturningStep");
const BaseStep_1 = require("../BaseStep");
class LimitStep extends BaseStep_1.BaseStep {
constructor(prevStep, value, asBinder = false) {
super(prevStep);
if (typeof value === 'number' && (!Number.isFinite(value) || value < 0)) {
throw new errors_1.InvalidLimitValueError(value);
}
if (asBinder) {
if (value instanceof singletoneConstants_1.All) {
throw new Error('ALL cannot be used as binder');
}
this.value = this.binderStore.getBinder(value);
}
else {
this.value = value;
}
}
getStepStatement() {
if (this.value === null) {
return `LIMIT NULL`;
}
return `LIMIT ${this.value}`;
}
getStepArtifacts() {
return { tables: new Set(), columns: new Set() };
}
offset(value) {
return new OffsetStep_1.OffsetStep(this, value);
}
offset$(value) {
return new OffsetStep_1.OffsetStep(this, value, true);
}
returning(...items) {
return new ReturningStep_1.ReturningStep(this, items);
}
}
exports.LimitStep = LimitStep;
//# sourceMappingURL=LimitStep.js.map