@mcabreradev/filter
Version:
A powerful, SQL-like array filtering library for TypeScript and JavaScript with advanced pattern matching, MongoDB-style operators, deep object comparison, and zero dependencies
30 lines (29 loc) • 1.1 kB
TypeScript
import { Accessor } from 'solid-js';
import { filter } from '../../core/filter/filter';
import type { Expression, FilterOptions } from '../../types';
export declare function useFilter<T>(data: Accessor<T[]>, expression: Accessor<Expression<T> | null>, options?: Accessor<FilterOptions>): {
filtered: Accessor<T[]>;
isFiltering: Accessor<boolean>;
};
export declare function useDebouncedFilter<T>(data: Accessor<T[]>, expression: Accessor<Expression<T>>, options?: {
delay?: number;
filterOptions?: FilterOptions;
}): {
filtered: Accessor<T[]>;
isPending: Accessor<boolean>;
};
export declare function usePaginatedFilter<T>(data: Accessor<T[]>, expression: Accessor<Expression<T> | null>, options?: {
pageSize?: number;
initialPage?: number;
filterOptions?: FilterOptions;
}): {
paginatedResults: Accessor<T[]>;
currentPage: Accessor<number>;
totalPages: Accessor<number>;
pageSize: Accessor<number>;
setPage: (page: number) => void;
setPageSize: (size: number) => void;
nextPage: () => void;
prevPage: () => void;
};
export { filter };