npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sefetch

v0.0.5

Published

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

Downloads

229

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.