UNPKG

@adonis-agora/filter

Version:

Server-side query filtering/sorting/pagination for AdonisJS — Spatie-style input, a Lucid adapter, and field allow-listing. Part of the Agora ecosystem.

30 lines 1.26 kB
import { type ColumnFilter, type FilterOperator } from './operators.js'; /** * Normalizes an operator string to its canonical {@link FilterOperator}, * resolving SQL-symbol aliases (`=` -> `equals`, `!=` -> `notEquals`, ...). * Canonical operators (and unknown strings) pass through unchanged. */ export declare function normalizeOperator(operator: string): FilterOperator; /** * Maximum allowed nesting depth for AND/OR filter composition. * Prevents stack overflow from maliciously deep payloads (DoS). */ export declare const MAX_FILTER_DEPTH = 10; export declare class InvalidColumnFilterError extends Error { constructor(message: string); } /** * Validates a ColumnFilter at runtime: * - field must be a non-empty string with no SQL-unsafe characters * - operator must be a known FilterOperator * - value is required for non-unary operators * - 'between' requires a 2-element array * - 'in'/'isAnyOf' require arrays * - AND/OR arrays are validated recursively */ export declare function validateColumnFilter(filter: ColumnFilter, depth?: number): void; /** * Validates an array of ColumnFilter objects. */ export declare function validateColumnFilters(filters: ColumnFilter[]): void; //# sourceMappingURL=validate-column-filter.d.ts.map