@jacraig/request
TypeScript icon, indicating that this package has built-in type declarations

1.0.7 • Public • Published

@jacraig/request

NPM Publish

@jacraig/request is a powerful yet lightweight library designed to simplify HTTP requests using the native fetch API while adding functionality such as caching, retry logic, and timeouts. It aims to provide developers with a convenient and flexible solution for handling HTTP requests in JavaScript and TypeScript applications.

Features

  • Caching: Cache responses to improve performance and reduce network requests.
  • Retry logic: Automatically retry failed requests with customizable retry options.
  • Timeouts: Set timeouts for requests to prevent hanging and improve overall application responsiveness.

Installation

You can install @jacraig/request via npm:

npm install @jacraig/request

Usage

Here's a basic example of how you can use @jacraig/request to make a fetch request:

import { Request } from '@jacraig/request';

let returnValue = await Request.get('https://jsonplaceholder.somewhere.com/post.json').send();

In order to use caching, retry logic, or timeouts, you can use the extra methods on the returned Request object to set options:

import { Request, StorageMode } from '@jacraig/request';

let returnValue = await Request.get('https://jsonplaceholder.somewhere.com/post.json')
    .withStorageMode(StorageMode.StorageAndUpdate)
    .withTimeout(5000)
    .withRetryAttempts(3)
    .send();

If you prefer to use callbacks instead of promises, you can do so by passing a callback function to the onSuccess method:

import { Request } from '@jacraig/request';

Request.get('https://jsonplaceholder.somewhere.com/post.json')
    .onSuccess((response) => {
        console.log(response);
    })
    .send();

Documentation

For more detailed information on how to use @jacraig/request, please refer to the documentation on GitHub Pages.

License

@jacraig/request is licensed under the Apache 2.0 License

Package Sidebar

Install

npm i @jacraig/request

Weekly Downloads

64

Version

1.0.7

License

Apache-2.0

Unpacked Size

162 kB

Total Files

17

Last publish

Collaborators

  • jacraig