43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import { DATASQUIREL_LoggedInUser, ServerQueryParam } from "../../types";
|
|
export declare const DataCrudRequestMethods: readonly ["GET", "POST", "PUT", "DELETE"];
|
|
export type APIDataCrudQuery = ServerQueryParam & {
|
|
page?: number;
|
|
};
|
|
export type CRUDResponseObject<P extends any = any> = {
|
|
success: boolean;
|
|
payload?: P;
|
|
msg?: string;
|
|
error?: string;
|
|
};
|
|
export type ApiDataCrudParam<T extends {
|
|
[key: string]: any;
|
|
} = {
|
|
[key: string]: any;
|
|
}> = {
|
|
method: (typeof DataCrudRequestMethods)[number];
|
|
body?: T;
|
|
query?: string | T;
|
|
tableName: string;
|
|
addUser?: {
|
|
field: string;
|
|
};
|
|
user?: DATASQUIREL_LoggedInUser;
|
|
extraData?: T;
|
|
transform?: ({ data, existingData, user, }: {
|
|
user?: DATASQUIREL_LoggedInUser;
|
|
data: T;
|
|
existingData?: T;
|
|
reqMethod: (typeof DataCrudRequestMethods)[number];
|
|
}) => Promise<T>;
|
|
existingData?: T;
|
|
};
|
|
export default function dsqlMethodCrud<T extends {
|
|
[key: string]: any;
|
|
} = {
|
|
[key: string]: any;
|
|
}, P extends {
|
|
[key: string]: any;
|
|
} = {
|
|
[key: string]: any;
|
|
}>({ method, tableName, addUser, user, extraData, transform, existingData, body, query, }: ApiDataCrudParam<T>): Promise<CRUDResponseObject<P>>;
|