rawsql-ts
Version:
[beta]High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
36 lines (35 loc) • 1.32 kB
TypeScript
import { SimpleSelectQuery } from "../models/SelectQuery";
/**
* Options for pagination injection
*/
export interface PaginationOptions {
/** Page number (1-based) */
page: number;
/** Number of items per page */
pageSize: number;
}
/**
* SqlPaginationInjector injects pagination (LIMIT/OFFSET) into a SelectQuery model,
* creating LIMIT and OFFSET clauses based on provided pagination options.
*/
export declare class SqlPaginationInjector {
/**
* Injects pagination as LIMIT/OFFSET clauses into the given query model.
* @param query The SelectQuery to modify
* @param pagination Pagination options containing page number and page size
* @returns The modified SimpleSelectQuery with pagination applied
*/
inject(query: SimpleSelectQuery | string, pagination: PaginationOptions): SimpleSelectQuery;
/**
* Removes LIMIT and OFFSET clauses from the given query.
* @param query The SelectQuery to modify
* @returns The modified SimpleSelectQuery with pagination removed
*/
static removePagination(query: SimpleSelectQuery | string): SimpleSelectQuery;
/**
* Validates pagination options
* @param pagination Pagination options to validate
* @throws Error if validation fails
*/
private validatePaginationOptions;
}