sefetch

0.0.5 • Public • Published

sefetch - Advanced Fetch Wrapper

sefetch is an advanced wrapper around the native fetch API that provides additional functionality, including caching, retry logic, and request timeouts. It is designed to simplify HTTP requests and offer enhanced control over network interactions.


Features

  • Caching: Cache responses to avoid redundant network requests.
  • Retry Logic: Automatically retry failed requests a specified number of times.
  • Timeouts: Abort requests that exceed a specified timeout period.
  • Customizable Headers: Set headers directly in request options.

Installation

To use sefetch, you can copy the sefetch class code into your project or install it via npm if available.


Usage

Here's how you can use the sefetch class in your project:

Importing and Creating an Instance

const sefetch = require('./sefetch'); // Adjust path as needed

const api = new sefetch('https://api.example.com', 5000, 3, true);

Making Requests

GET Request:

api.get('/data', {
    headers: {
        'Authorization': 'Bearer your-token',
        'Content-Type': 'application/json'
    }
})
.then(data => console.log(data))
.catch(error => console.error(error));

POST Request:

api.post('/submit', { key: 'value' }, {
    headers: {
        'Authorization': 'Bearer your-token',
        'Content-Type': 'application/json'
    }
})
.then(data => console.log(data))
.catch(error => console.error(error));

PUT Request:

api.put('/update', { key: 'newValue' }, {
    headers: {
        'Authorization': 'Bearer your-token',
        'Content-Type': 'application/json'
    }
})
.then(data => console.log(data))
.catch(error => console.error(error));

DELETE Request:

api.delete('/remove', {
    headers: {
        'Authorization': 'Bearer your-token'
    }
})
.then(data => console.log(data))
.catch(error => console.error(error));

Managing Cache

Clear Cache:

api.clearCache();
console.log(`Cache size: ${api.getCacheSize()}`);

Setting Default Headers

Set Default Headers:

api.setHeaders({
    'Authorization': 'Bearer your-token',
    'Content-Type': 'application/json'
});

Options

  • baseURL: Base URL for requests.
  • timeout: Timeout duration in milliseconds (default: 5000ms).
  • retries: Number of retry attempts on failure (default: 3).
  • cache: Enable or disable caching (default: false).

Methods

  • get(url, options): Performs a GET request with optional headers and other settings.
  • post(url, body, options): Performs a POST request with a JSON body and optional headers.
  • put(url, body, options): Performs a PUT request with a JSON body and optional headers.
  • delete(url, options): Performs a DELETE request with optional headers.
  • clearCache(): Clears the cache.
  • getCacheSize(): Returns the size of the cache.
  • setHeaders(headers): Sets default headers for requests.

Error Handling

  • Timeouts: Requests that exceed the timeout period will be aborted.
  • Retries: Failed requests will be retried based on the specified number of retries.
  • Error Logging: Errors are logged to the console for debugging.

Package Sidebar

Install

npm i sefetch

Weekly Downloads

9

Version

0.0.5

License

Apache-2.0

Unpacked Size

12.6 kB

Total Files

4

Last publish

Collaborators

  • mrsel.js