sefetch
v0.0.5
Published
A highly advanced fetch module with caching, retry, and timeout features.
Downloads
7
Maintainers
Readme
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.