UNPKG

arvox-backend

Version:

Un framework backend moderne et modulaire basé sur Hono, TypeScript et l'architecture hexagonale avec authentification Better Auth + Drizzle intégrée

102 lines 3.02 kB
/** * Utility class for handling pagination logic */ export declare class PaginationUtil { private readonly defaultPage; private readonly defaultLimit; private readonly maxLimit; /** * Extract pagination parameters from Hono context * @param c - Hono context * @returns Pagination parameters with skip calculated */ extractFromContext(c: any): { page: number; limit: number; skip: number; }; /** * Calculate pagination metadata * @param total - Total number of items * @param page - Current page * @param limit - Items per page * @returns Pagination metadata */ calculateMetadata(total: number, page: number, limit: number): { total: number; page: number; limit: number; totalPages: number; hasNext: boolean; hasPrev: boolean; startIndex: number; endIndex: number; showing: string; }; /** * Validate pagination parameters * @param page - Page number * @param limit - Items per page * @throws Error if parameters are invalid */ validate(page: number, limit: number): void; /** * Create pagination links for navigation * @param baseUrl - Base URL for the resource * @param page - Current page * @param totalPages - Total number of pages * @param limit - Items per page * @returns Navigation links */ createLinks(baseUrl: string, page: number, totalPages: number, limit: number): { [k: string]: string | null; }; /** * Apply pagination to an array (for in-memory pagination) * @param items - Array of items * @param page - Page number * @param limit - Items per page * @returns Paginated subset of items */ applyToArray<T>(items: T[], page: number, limit: number): T[]; /** * Create a paginated response structure * @param items - Array of items * @param total - Total count * @param page - Current page * @param limit - Items per page * @param baseUrl - Optional base URL for links * @returns Complete paginated response */ createResponse<T>(items: T[], total: number, page: number, limit: number, baseUrl?: string): { items: T[]; pagination: { links?: { [k: string]: string | null; } | undefined; total: number; page: number; limit: number; totalPages: number; hasNext: boolean; hasPrev: boolean; startIndex: number; endIndex: number; showing: string; }; }; /** * Get default pagination values * @returns Default page and limit values */ getDefaults(): { page: number; limit: number; }; /** * Get maximum allowed limit * @returns Maximum limit value */ getMaxLimit(): number; } //# sourceMappingURL=pagination.util.d.ts.map