@avonjs/avonjs
Version:
A fluent Node.js API generator.
60 lines (59 loc) • 2.17 kB
TypeScript
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;