vormiaqueryjs
Version:
Vormia Query Js - A npm package for query management with VormiaPHP laravel Backend application
62 lines (61 loc) • 1.93 kB
JavaScript
import { useQuery } from "@tanstack/react-query";
import { getGlobalVormiaClient } from "../client/createVormiaClient.mjs";
import { VormiaError } from "../client/utils/VormiaError.mjs";
function useVormiaQuery(options) {
const client = getGlobalVormiaClient();
const {
endpoint,
method = "GET",
params,
data: bodyData,
headers,
transform,
enabled = true,
setEncrypt = false,
...queryOptions
} = options;
const queryKey = [endpoint, method, params, bodyData, headers, setEncrypt];
const queryFn = async () => {
var _a, _b;
try {
let config = {
method,
params: method === "GET" ? params : void 0,
data: method !== "GET" ? bodyData || params : void 0,
headers
};
if (setEncrypt && config.data) {
const { encryptWithPublicKey } = await import("../client/utils/encryption.mjs");
config.data = encryptWithPublicKey(config.data);
}
const response = await client.request({
url: endpoint,
...config
});
let responseData = response.data;
if (setEncrypt && responseData) {
const { decryptWithPrivateKey } = await import("../client/utils/encryption.mjs");
responseData = decryptWithPrivateKey(responseData);
}
if (transform) {
responseData = transform(responseData);
}
return responseData;
} catch (error) {
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred";
const status = (_a = error == null ? void 0 : error.response) == null ? void 0 : _a.status;
const errorData = (_b = error == null ? void 0 : error.response) == null ? void 0 : _b.data;
throw new VormiaError(errorMessage, status, errorData);
}
};
return useQuery({
queryKey,
queryFn,
enabled,
...queryOptions
});
}
export {
useVormiaQuery
};
//# sourceMappingURL=react.mjs.map