@aequum/in-memory
Version:
aequum in-memory stuff
29 lines (28 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseCRUDLInMemoryPaginatedService = void 0;
const base_crudl_in_memory_service_1 = require("../base-crudl-in-memory.service");
class BaseCRUDLInMemoryPaginatedService extends base_crudl_in_memory_service_1.BaseCRUDLInMemoryService {
async paginatedList(filter, page, size, sort, // Ignored
...args) {
if (page < 1)
page = 1;
const all = await this.repository.find(filter ?? {});
const start = (page - 1) * size;
const end = start + size;
const data = all.slice(start, end);
const pages = Math.ceil(all.length / size);
return {
data,
paginator: {
page,
size,
pages,
next: page < pages ? page + 1 : null,
prev: page > 1 ? page - 1 : null,
total: all.length
}
};
}
}
exports.BaseCRUDLInMemoryPaginatedService = BaseCRUDLInMemoryPaginatedService;