UNPKG

@avonjs/avonjs

Version:

A fluent Node.js API generator.

52 lines (51 loc) 1.52 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 Decimal 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>; /** * The maximum number of decimal places allowed. */ protected decimal: number; /** * Mutate the field value for response. */ getMutatedValue(request: AvonRequest, value: AnyValue): Optional<number>; /** * Specifies the maximum number of decimal places. */ precision(decimal: number): this; /** * Determine field is filterable or not. */ isFilterable(): boolean; /** * Determine field is orderable or not. */ isOrderable(): boolean; /** * Make the field filter. */ makeFilter(request: AvonRequest): Filter; /** * Get the swagger-ui schema. */ protected baseSchema(request: AvonRequest): OpenApiSchema; }