fortea
Version:
some tools for js, save your time for a cup of tea
32 lines (31 loc) • 982 B
TypeScript
interface skipTakeOptions {
defaultPage?: number;
defaultPageSize?: number;
maxPageSize?: number;
maxPage?: number;
minPageSize?: number;
minPage?: number;
allowAll?: boolean;
}
interface skipTakePagination {
page?: number | string;
pageSize?: number | string;
}
interface skipTakeResult {
skip?: number;
take?: number;
page: number;
pageSize: number;
}
/**
* @name skipTake
* @description skip take pagination function for prisma orm
* @example
* const { skip, take } = skipTake({ page: 2, pageSize: 10 }) // skip: 10, take: 10
*
* const { skip, take } = skipTake({ page: 2, pageSize: -1 }) // skip: undefined, take: undefined
*
* const { skip, take } = skipTake({ page: 1, pageSize: -1 }, { allowAll: false }) // skip: 0, take: 10 (pageSize = minPageSize || defaultPageSize)
*/
declare function skipTake(pagination?: skipTakePagination, options?: skipTakeOptions): skipTakeResult;
export default skipTake;