UNPKG

nestjs-api-tools

Version:

Wrappers for convenient API development including validation, logging and i18n wrappers

21 lines (17 loc) 657 B
import {PAGE_PARAM, POSTGRES_MAX_INT} from '../constants'; import {ExecutionContextHost} from '@nestjs/core/helpers/execution-context-host'; import {createParamDecorator} from '@nestjs/common'; export interface PageOptions { defaultPage: number; pageParam: string; } /** * Page decorator. */ export const Page = createParamDecorator( (options: PageOptions = {defaultPage: 1, pageParam: PAGE_PARAM}, ctx: ExecutionContextHost): number => { const request = ctx.switchToHttp().getRequest(); const page = parseInt(request.query[options.pageParam]) || options.defaultPage; return page > POSTGRES_MAX_INT ? POSTGRES_MAX_INT : page; }, );