adonis-forge
Version:
Bundle utils for AdonisJS
40 lines (39 loc) • 1.25 kB
TypeScript
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;