@avonjs/avonjs
Version:
A fluent Node.js API generator.
32 lines (31 loc) • 1.18 kB
TypeScript
import { type AbstractMixable, type AnyValue, type FilterableCallback, type Model } from '../Contracts';
import type { Filter } from '../Filters';
import type AvonRequest from '../Http/Requests/AvonRequest';
import type { Repository } from '../Repositories';
declare const _default: <T extends AbstractMixable = AbstractMixable>(Parent: T) => (abstract new (...args: import("../Contracts").Args) => {
/**
* The callback to be used for the field's default value.
*/
filterableCallback?: FilterableCallback | boolean;
/**
* Apply the filter to the given query.
*/
applyFilter(request: AvonRequest, queryBuilder: Repository<Model>, value: AnyValue): Promise<void>;
/**
* Make the field filter.
*/
resolveFilter(request: AvonRequest): Filter | undefined;
/**
* The callback used to determine if the field is filterable.
*/
filterable(callback?: FilterableCallback | boolean): any;
/**
* Make the field filter.
*/
makeFilter(request: AvonRequest): Filter;
/**
* Define filterable attribute.
*/
filterableAttribute(request: AvonRequest): string;
}) & T;
export default _default;