nestjs-api-tools
Version:
Wrappers for convenient API development including validation, logging and i18n wrappers
12 lines (11 loc) • 488 B
text/typescript
/**
* Transforms page (from 1) and size to offset (from 0) and limit.
* @param {number} page Page number (from 1).
* @param {number} size Page size.
* @param {number} defaultSize Default page size - used if no page size provided.
*/
export const pageAndSizeToSkipAndTake = (page: number, size: number, defaultSize: number): number[] => {
const take = size === null ? null : size > 0 ? size : defaultSize;
const skip = page <= 1 ? 0 : (page - 1) * size;
return [skip, take];
};