UNPKG

@avonjs/avonjs

Version:

A fluent Node.js API generator.

60 lines (59 loc) 2.17 kB
import { type AnySchema } from 'joi'; import type { AbstractMixable, Rules } from '../Contracts'; import type AvonRequest from '../Http/Requests/AvonRequest'; import type Resource from '../Resource'; declare const _default: <T extends AbstractMixable = AbstractMixable>(Parent: T) => (abstract new (...args: import("../Contracts").Args) => { /** * Validate a resource creation request. * * @throws ValidationException */ validateForCreation(request: AvonRequest): Promise<void>; /** * Create a validator instance for a resource creation request. */ validatorForCreation(request: AvonRequest): AnySchema; /** * Get the validation rules for a resource creation request. */ rulesForCreation(request: AvonRequest): AnySchema[]; /** * Validate a resource update request. * * @throws \Illuminate\Validation\ValidationException */ validateForUpdate(request: AvonRequest, resource?: Resource): Promise<void>; /** * Create a validator instance for a resource update request. */ validatorForUpdate(request: AvonRequest, resource?: Resource): AnySchema; /** * Get the validation rules for a resource update request. */ rulesForUpdate(request: AvonRequest, resource?: Resource): AnySchema[]; /** * Prepare given rules for validator. */ prepareRulesForValidator(rules: Rules[]): AnySchema[]; /** * Perform any final formatting of the given validation rules. */ formatRules(request: AvonRequest, rules: AnySchema[]): AnySchema[]; /** * Prepare given rules for validator. */ dataForValidation(request: AvonRequest): import("../Contracts").AnyRecord; /** * Handle any post-validation processing. */ afterValidation(request: AvonRequest, validator: unknown): void; /** * Handle any post-creation validation processing. */ afterCreationValidation(request: AvonRequest, validator: unknown): void; /** * Handle any post-update validation processing. */ afterUpdateValidation(request: AvonRequest, validator: unknown): void; }) & T; export default _default;