@jmfetchify/fetchify v1.0.8
@jmfetchify/fetchify
@jmfetchify/fetchify is a lightweight and flexible HTTP request library for JavaScript/TypeScript applications. It provides simple configuration management, token-based authentication, and supports request and response interceptors. It works seamlessly on both client and server sides.
Features
- Customizable HTTP request methods (GET, POST, PUT, PATCH, DELETE).
- Token management for authentication.
- Request and response interceptors.
- Supports both client-side (browser) and server-side (Node.js) usage.
Installation
To install the library, run:
npm install @jmfetchify/fetchifyor
pnpm install @jmfetchify/fetchifyUSAGE
import { Fetchify } from "@jmfetchify/fetchify";
const fetchifyInstance = Fetchify.create({
baseURL: 'https://your-api-url.com',
headers: {}
});
fetchifyInstance.setToken({ token: 'your-auth-token' });
fetchifyInstance.setRequestInterceptor(async (config) => {
const token = localStorage.getItem("accessToken");
if (token) {
config.headers.set("Authorization", `Bearer ${token}`);
}
console.log("Request Interceptor:", config);
return config;
});
// Example GET request
fetchifyInstance.GET({ endpoint: 'users' }).then(response => {
console.log('Users:', response);
}).catch(error => {
console.error('Error fetching users:', error);
});API Methods
setToken
Sets the authentication token for the requests.
setToken({ token: string })setRequestInterceptor
Sets a request interceptor to modify the request before it is sent.
setRequestInterceptor(interceptor: (config: Request) => Promise<Request>)setResponseInterceptor
Sets a response interceptor to modify the response before it is returned to the caller.
setResponseInterceptor(interceptor: <T>(response: T) => Promise<T>)GET
Sends a GET request to the specified endpoint.
GET<T>({ endpoint: string, options?: RequestInit, timeOut?: number })POST
Sends a POST request to the specified endpoint with the given body.
POST<T>({ endpoint: string, body?: unknown, options?: RequestInit, timeOut?: number })PUT
Sends a PUT request to the specified endpoint with the given body.
PUT<T>({ endpoint: string, body?: unknown, options?: RequestInit, timeOut?: number })PATCH
Sends a PATCH request to the specified endpoint with the given body.
PATCH<T>({ endpoint: string, body?: unknown, options?: RequestInit, timeOut?: number })DELETE
Sends a DELETE request to the specified endpoint.
DELETE<T>({ endpoint: string, options?: RequestInit, timeOut?: number })License
This project is licensed under the MIT License. See the LICENSE file for details.