UNPKG

@blueleader07/typeorm

Version:

Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.

57 lines (55 loc) 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DynamoPageable = void 0; const DynamoSort_1 = require("./DynamoSort"); class DynamoPageable { constructor(pageNumber, pageSize, sort, exclusiveStartKey) { this.pageNumber = pageNumber; this.pageSize = pageSize || DynamoPageable.DEFAULT_PAGE_SIZE; this.sort = sort || DynamoSort_1.DynamoSort.UNSORTED; this.exclusiveStartKey = exclusiveStartKey; } toQueryString(prefix) { prefix = prefix || "?"; let sort = this.sort.orders .map((order) => { return `sort=${order.property},${order.direction}`; }) .join("&"); if (sort) { sort = `&${sort}`; } return `${prefix}page=${this.pageNumber}&size=${this.pageSize}${sort}`; } static mixin(params, pageable) { if (pageable) { return { ...params, pageNumber: pageable.pageNumber || DynamoPageable.DEFAULT_PAGE_NUMBER, pageSize: pageable.pageSize || DynamoPageable.DEFAULT_PAGE_SIZE, }; } return params; } static parse(req) { const pageNumber = parseInt(req.query.page || DynamoPageable.DEFAULT_PAGE_NUMBER); const pageSize = parseInt(req.query.size || DynamoPageable.DEFAULT_PAGE_SIZE); const sort = DynamoSort_1.DynamoSort.parse(req); const exclusiveStartKey = req.query.exclusiveStartKey; return DynamoPageable.of(pageNumber, pageSize, sort, exclusiveStartKey); } static getDefault() { return new DynamoPageable(this.DEFAULT_PAGE_NUMBER); } static one(sort) { return new DynamoPageable(this.DEFAULT_PAGE_NUMBER, this.ONE, sort); } static of(pageNumber, pageSize, sort, exclusiveStartKey) { return new DynamoPageable(pageNumber, pageSize, sort, exclusiveStartKey); } } exports.DynamoPageable = DynamoPageable; DynamoPageable.DEFAULT_PAGE_NUMBER = 0; DynamoPageable.DEFAULT_PAGE_SIZE = 15; DynamoPageable.ONE = 1; //# sourceMappingURL=DynamoPageable.js.map