UNPKG

@kitstack/nest-powertools

Version:

A comprehensive collection of NestJS powertools, decorators, and utilities to supercharge your backend development

77 lines (76 loc) 1.84 kB
import type { ExecutionContext } from '@nestjs/common'; export declare enum DefaultRoles { ADMIN = "admin", USER = "user", MODERATOR = "moderator", GUEST = "guest" } export declare enum SortOrder { ASC = "ASC", DESC = "DESC" } export declare enum ResponseStatus { SUCCESS = "success", ERROR = "error", WARNING = "warning" } export declare enum LogLevel { ERROR = "error", WARN = "warn", INFO = "info", DEBUG = "debug" } export interface CustomAuthGuard { canActivate(context: ExecutionContext, user: any, requiredPermissions?: string[]): boolean | Promise<boolean>; } export interface AuthConfig { guard?: CustomAuthGuard; roles?: string[] | DefaultRoles[]; permissions?: string[]; customValidator?: (user: any, context: ExecutionContext) => boolean | Promise<boolean>; } export interface GuardRegistry { [key: string]: CustomAuthGuard; } export interface PaginationQuery { page?: number; limit?: number; sortBy?: string; sortOrder?: SortOrder; } export interface PaginatedResponse<T> { data: T[]; total: number; page: number; limit: number; totalPages: number; } export interface CacheOptions { ttl?: number; key?: string; } export interface ValidationOptions { transform?: boolean; whitelist?: boolean; forbidNonWhitelisted?: boolean; } export interface RateLimitOptions { windowMs?: number; max?: number; message?: string; strategy?: 'delay' | 'reject'; delayAfter?: number; delayMs?: number; maxDelayMs?: number; delayMultiplier?: number; enableLogging?: boolean; } export interface LoggingOptions { includeBody?: boolean; includeHeaders?: boolean; excludeFields?: string[]; } export interface ApiResponseConfig { status: number; description: string; }