UNPKG

@avonjs/avonjs

Version:

A fluent Node.js API generator.

68 lines (67 loc) 1.95 kB
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; }