@avonjs/avonjs
Version:
A fluent Node.js API generator.
68 lines (67 loc) • 1.95 kB
TypeScript
import Joi from 'joi';
import type { Filter } from '../Filters';
import type AvonRequest from '../Http/Requests/AvonRequest';
import type { AnyValue, DefaultCallback, OpenApiSchema, Optional } from '../Contracts';
import Field from './Field';
export default class Integer extends Field {
/**
* The callback to be used for the field's default value.
*/
defaultCallback: DefaultCallback;
/**
* The validation rules callback for creation and updates.
*/
protected rulesSchema: Joi.NumberSchema<number>;
/**
* The validation rules callback for creation.
*/
protected creationRulesSchema: Joi.NumberSchema<number>;
/**
* The validation rules callback for updates.
*/
protected updateRulesSchema: Joi.NumberSchema<number>;
/**
* Indicates a minimum acceptable value.
*/
protected minimum?: number;
/**
* Indicates a maximum acceptable value.
*/
protected maximum?: number;
/**
* Indicates whether the range filter is disabled or not.
*/
protected disableRangeFilter: boolean;
/**
* Specifies the minimum value.
*/
min(minimum?: number): this;
/**
* Specifies the maximum value.
*/
max(maximum?: number): this;
/**
* Mutate the field value for response.
*/
getMutatedValue(request: AvonRequest, value: AnyValue): Optional<number>;
/**
* Determine field is filterable or not.
*/
isFilterable(): boolean;
/**
* Determine field is orderable or not.
*/
isOrderable(): boolean;
/**
* Prevent filters by range of values and force to accept only array of values.
*/
preventRangeFilter(disableRangeFilter?: boolean): this;
/**
* Make the field filter.
*/
makeFilter(request: AvonRequest): Filter;
/**
* Get the swagger-ui schema.
*/
protected baseSchema(request: AvonRequest): OpenApiSchema;
}