@herlinus/coloquent
Version:
Library for retrieving model objects from a JSON-API, with a fluent syntax inspired by Laravel Eloquent.
27 lines • 1.04 kB
JavaScript
import { PaginationSpec } from "./PaginationSpec";
import { QueryParam } from "../QueryParam";
export class OffsetBasedPaginationSpec extends PaginationSpec {
constructor(pageOffsetParamName, pageLimitParamName, limit) {
super();
this.queryParams = [];
this.pageOffsetParamName = pageOffsetParamName;
this.pageLimitParamName = pageLimitParamName;
this.pageLimit = limit;
}
getPaginationParameters() {
this.queryParams = [];
if (this.pageOffset !== undefined) {
this.queryParams.push(new QueryParam(`${this.pageOffsetParamName}`, this.pageOffset));
this.queryParams.push(new QueryParam(`${this.pageLimitParamName}`, this.pageLimit));
}
return this.queryParams;
}
setPage(page) {
page = Math.max(page, 1);
this.pageOffset = (page - 1) * this.pageLimit;
}
setPageLimit(pageLimit) {
this.pageLimit = pageLimit;
}
}
//# sourceMappingURL=OffsetBasedPaginationSpec.js.map