UNPKG

adonis-forge

Version:

Bundle utils for AdonisJS

40 lines (39 loc) 1.25 kB
import { LucidModel, ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; import { SchemaTypes } from '@vinejs/vine/types'; export declare const crudActions: readonly [{ readonly label: "Paginate"; readonly value: "index"; }, { readonly label: "Detail"; readonly value: "show"; }, { readonly label: "Create"; readonly value: "store"; }, { readonly label: "Update"; readonly value: "update"; }, { readonly label: "Delete"; readonly value: "destroy"; }]; export type CrudAction = (typeof crudActions)[number]['value']; export interface CrudOperationsOptions<T extends LucidModel> { model: T; only?: CrudAction[]; exclude?: CrudAction[]; validators?: { store?: SchemaTypes; update?: SchemaTypes; }; queryHandlers?: { index?: (query: ModelQueryBuilderContract<T>, qs: Record<string, string>) => void; show?: (query: ModelQueryBuilderContract<T>, qs: Record<string, string>) => void; }; events?: { stored?: (model: InstanceType<T>) => void; updated?: (payload: any) => void; }; } export interface CrudPaginationQs { } export declare function Crud<T extends LucidModel>(options: CrudOperationsOptions<T>): ClassDecorator;