1.0.8 • Published 10 months ago

@jmfetchify/fetchify v1.0.8

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

@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/fetchify

or

pnpm install @jmfetchify/fetchify

USAGE

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.

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago