@ashraflabs/use-api
Version:
A simple and powerful custom React hook (useApi) that simplifies API requests with automatic loading and error states. Ideal for clean and maintainable data fetching in React components.
41 lines (40 loc) • 2.18 kB
JavaScript
import { useGet } from "./useGet";
import { usePost } from "./usePost";
import { usePut } from "./usePut";
import { useDelete } from "./useDelete";
export function useApi(baseApiUrl, baseOptions) {
return {
useGet: (url, options) => useGet(baseApiUrl, url, {
...options,
headers: baseOptions === null || baseOptions === void 0 ? void 0 : baseOptions.headers,
onRequestDone(url, endpoint, responseCode) {
var _a;
(_a = baseOptions === null || baseOptions === void 0 ? void 0 : baseOptions.onRequestDone) === null || _a === void 0 ? void 0 : _a.call(baseOptions, url, endpoint, responseCode);
},
}),
usePost: (url, options) => usePost(baseApiUrl, url, {
...options,
headers: baseOptions === null || baseOptions === void 0 ? void 0 : baseOptions.headers,
onRequestDone(url, endpoint, responseCode) {
var _a;
(_a = baseOptions === null || baseOptions === void 0 ? void 0 : baseOptions.onRequestDone) === null || _a === void 0 ? void 0 : _a.call(baseOptions, url, endpoint, responseCode);
},
}),
usePut: (url, options) => usePut(baseApiUrl, url, {
...options,
headers: baseOptions === null || baseOptions === void 0 ? void 0 : baseOptions.headers,
onRequestDone(url, endpoint, responseCode) {
var _a;
(_a = baseOptions === null || baseOptions === void 0 ? void 0 : baseOptions.onRequestDone) === null || _a === void 0 ? void 0 : _a.call(baseOptions, url, endpoint, responseCode);
},
}),
useDelete: (url, options) => useDelete(baseApiUrl, url, {
...options,
headers: baseOptions === null || baseOptions === void 0 ? void 0 : baseOptions.headers,
onRequestDone(url, endpoint, responseCode) {
var _a;
(_a = baseOptions === null || baseOptions === void 0 ? void 0 : baseOptions.onRequestDone) === null || _a === void 0 ? void 0 : _a.call(baseOptions, url, endpoint, responseCode);
},
}),
};
}