@devfamily/admiral
Version:
Admiral is a frontend framework for creating back office using React. It provides out-of-the-box components and tools that make developing an admin interface easy and fast.
89 lines (88 loc) • 2.97 kB
TypeScript
export declare type Identifier = string | number;
export interface IRecord {
id: Identifier;
[key: string]: any;
}
export interface FormRecord {
[key: string]: any;
}
export interface SortPayload {
field: string;
order: string;
}
export interface FilterPayload {
[k: string]: any;
}
export interface PaginationPayload {
page: number;
perPage: number;
}
export interface PaginationResponse {
current_page: number;
per_page: number;
total: number;
}
export declare type OptionType = {
value: string;
label: string;
};
export declare type DataProvider = {
getList: <RecordType extends IRecord = IRecord>(resource: string, params: Partial<GetListParams>) => Promise<GetListResult<RecordType>>;
reorderList: (resource: string, params: ReorderParams) => Promise<void>;
getOne: <RecordType extends IRecord = IRecord>(resource: string, params: GetOneParams) => Promise<GetOneResult<RecordType>>;
getCreateFormData: <RecordType extends FormRecord = FormRecord>(resource: string) => Promise<GetFormDataResult<RecordType>>;
getUpdateFormData: <RecordType extends FormRecord = FormRecord>(resource: string, params: GetOneParams) => Promise<GetFormDataResult<RecordType>>;
getFiltersFormData: (resource: string, urlState?: Record<string, any>) => Promise<GetFiltersFormDataResult>;
update: <RecordType extends IRecord = IRecord>(resource: string, params: UpdateParams) => Promise<UpdateResult<RecordType>>;
create: <RecordType extends IRecord = IRecord>(resource: string, params: CreateParams) => Promise<CreateResult<RecordType>>;
deleteOne: <RecordType extends IRecord = IRecord>(resource: string, params: DeleteParams) => Promise<DeleteResult<RecordType>>;
[key: string]: any;
};
export interface GetListParams {
pagination: PaginationPayload;
sort: SortPayload;
filter: any;
}
export interface GetListResult<RecordType extends IRecord = IRecord> {
items: RecordType[];
meta: PaginationResponse;
}
export interface ReorderParams<T = any> {
data: T;
}
export interface GetOneParams {
id: Identifier;
}
export interface RecordOptions {
[k: string]: OptionType[];
}
export interface GetOneResult<RecordType extends IRecord = IRecord> {
data: RecordType;
values: RecordOptions;
}
export interface GetFormDataResult<RecordType extends FormRecord = FormRecord> {
data: RecordType;
values: RecordOptions;
}
export interface GetFiltersFormDataResult {
options: RecordOptions;
}
export interface UpdateParams<T = any> {
id: Identifier;
data: T;
}
export interface UpdateResult<RecordType extends IRecord = IRecord> {
data: RecordType;
}
export interface CreateParams<T = any> {
data: T;
}
export interface CreateResult<RecordType extends IRecord = IRecord> {
data: RecordType;
}
export interface DeleteParams {
id: Identifier;
}
export interface DeleteResult<RecordType extends IRecord = IRecord> {
data: RecordType;
}