@sauce-api/core
Version:
Sauce API core functionality
38 lines (37 loc) • 1.56 kB
TypeScript
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;
}