UNPKG

vormiaqueryjs

Version:

Vormia Query Js - A npm package for query management with VormiaPHP laravel Backend application

55 lines (54 loc) 1.67 kB
import { createResource } from "solid-js"; import { getGlobalVormiaClient } from "../client/createVormiaClient.mjs"; import { VormiaError } from "../client/utils/VormiaError.mjs"; function createVormiaResource(options) { const client = getGlobalVormiaClient(); const { endpoint, method = "GET", params, data: bodyData, headers, transform, ...resourceOptions } = options; const fetchData = async () => { var _a, _b; try { const config = { method, params: method === "GET" ? params : void 0, data: method !== "GET" ? bodyData || params : void 0, headers }; const response = await client.request({ url: endpoint, ...config }); let result = response.data; if (transform) { result = transform(result); } return result; } 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); } }; const [resource] = createResource( resourceOptions.autoFetch !== false ? fetchData : void 0, resourceOptions ); const enhancedRefetch = async (opts = {}) => { ({ ...options, ...opts }); const response = await fetchData(); return response; }; return [resource, { ...resource.actions, refetch: enhancedRefetch }]; } export { createVormiaResource }; //# sourceMappingURL=solid.mjs.map