datasquirel/dist/package-shared/utils/data-fetching/method-crud.d.ts
Benjamin Toby e82bcd0824 Updates
2025-01-25 14:20:25 +01:00

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>>;