@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
TypeScript
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