1.0.2 • Published 9 months ago

flexfetch v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months ago

FlexFetch

FlexFetch is a simple and flexible HTTP client built for performance and ease of use, featuring built-in caching, automatic retries, and customizable request/response interceptors.

Table of Contents

Installation

You can install FlexFetch via npm:

npm install flexfetch

Usage

Here's a simple example of how to use FlexFetch:

import FlexFetch from 'flexfetch';

const apiClient = new FlexFetch({
  baseURL: 'https://api.example.com',
  timeout: 5000,
  headers: {
    'Content-Type': 'application/json',
  },
});

async function fetchData() {
  try {
    const data = await apiClient.get('/endpoint');
    console.log(data);
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

fetchData();

Features

  • Supports:
    • GET, POST, PUT, and DELETE requests.
  • Automatic Retry:
    • Mechanism for handling failed requests with retry attempts.
  • Caching:
    • Caches responses to improve performance.
  • Interceptors:
    • Allows adding custom processing for requests and responses.
  • Configurable:
    • Easily set timeout, headers, and retry options.

API

Constructor

const client = new FlexFetch(config);

Parameters

  • config: An object to configure the client (optional).
    • baseURL: The base URL for the API (default: '').
    • timeout: The timeout for requests in milliseconds (default: 5000).
    • headers: Default headers to send with requests (default: {}).
    • retry: Number of retry attempts for failed requests (default: 3).
    • retryDelay: Delay between retry attempts in milliseconds (default: 1000).
    • cache: Enable or disable caching (default: true).

Methods

  • get(url, options): Makes a GET request.
  • post(url, data, options): Makes a POST request.
  • put(url, data, options): Makes a PUT request.
  • delete(url, options): Makes a DELETE request.
  • addInterceptor(type, interceptor): Adds an interceptor for requests or responses.
  • clearCache(): Clears the entire cache.
  • clearCacheEntry(url, method, headers): Clears a specific cache entry.

Examples

Basic Usage

Make a GET request:

const response = await apiClient.get('/users');
console.log(response);

Using Interceptors

You can add interceptors to modify requests or responses:

apiClient.addInterceptor('request', config => {
  console.log('Request:', config);
  return config;
});

apiClient.addInterceptor('response', data => {
  console.log('Response:', data);
  return data;
});

Cancelling a Request

To cancel a request, use the cancelRequest method:

const controller = new AbortController();
const signal = controller.signal;

apiClient.cancelRequest(controller);
// Call this method when needed to cancel the request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request. For major changes, please open an issue first to discuss what you would like to change.

Acknowledgements

  • Thanks to the open-source community for inspiration and support.
1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago