UNPKG

sefetch

Version:

A highly advanced fetch module with caching, retry, and timeout features.

137 lines (98 loc) 3.35 kB
# `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 ```javascript const sefetch = require('./sefetch'); // Adjust path as needed const api = new sefetch('https://api.example.com', 5000, 3, true); ``` ### Making Requests **GET Request:** ```javascript api.get('/data', { headers: { 'Authorization': 'Bearer your-token', 'Content-Type': 'application/json' } }) .then(data => console.log(data)) .catch(error => console.error(error)); ``` **POST Request:** ```javascript 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:** ```javascript 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:** ```javascript api.delete('/remove', { headers: { 'Authorization': 'Bearer your-token' } }) .then(data => console.log(data)) .catch(error => console.error(error)); ``` ### Managing Cache **Clear Cache:** ```javascript api.clearCache(); console.log(`Cache size: ${api.getCacheSize()}`); ``` ### Setting Default Headers **Set Default Headers:** ```javascript 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. ---