UNPKG

@sauce-api/core

Version:

Sauce API core functionality

38 lines (37 loc) 1.56 kB
import { Sauce } from "./Sauce"; import { ObjectOfAnything } from "./resources/Common"; import { PaginatedObject, PaginationQuery, PaginationConfig } from "./resources/PaginationTypes"; /** * A Service class that provides utility functions for handling requests */ export declare class Service<custom = ObjectOfAnything> { protected Sauce: Sauce<custom>; protected req: Sauce["req"]; protected currentRoute: Sauce["currentRoute"]; protected res: Sauce["res"]; protected next: Sauce["next"]; protected route: Sauce["currentRoute"]; protected config: Sauce["config"]; protected paging: PaginationConfig & { page: number; }; constructor(Sauce: Sauce<custom>); /** * Check if the current route has pagination query params * @return {boolean} - Returns true if current route has pagination query params, false otherwise */ routeHasPagination(): boolean; /** * Builds a pagination query object from the request query params * @throws Will throw an error if pagination query params not configured for the route * @return {PaginationQuery} - Returns a pagination query object */ buildPaginationQuery(): PaginationQuery; /** * Builds a paginated object from an array of data and total number of records * @param {any[]} data - The array of data to paginate * @param {number} [total] - The total number of records * @return {PaginatedObject} - Returns a paginated object */ paginate(data: any[], total?: number): PaginatedObject; }