Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Async lightweight http client with in-built reconciliation

License

NotificationsYou must be signed in to change notification settings

FeezyHendrix/possum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of content

Introduction

Possum is a TypeScript library designed to enhance the reliability of HTTP requests in web applications. Itautomatically retries failed HTTP requests by leveraging local storage and web workers. This ensures that even if a usergoes offline or encounters an error, their requests are stored and retried upon re-establishing a connection orreloading the page.

Features

  • Automatic Retry: Failed requests are retried automatically.
  • Local Storage: Requests are stored locally in case of failure.
  • Web Workers: Requests are retried in a separate thread to maintain UI responsiveness.
  • Configurable: Easy to configure for different use cases.

Installation

npm install possum-client

Or using yarn:

yarn add possum-client

Usage

First, import and initializePossum in your application.

import{PossumClient}from"possum-client";

Making Requests

UseperformPossumRequest to handle your HTTP requests:

import{PossumClient}from"possum-client";const{performPossumRequest}=PossumClient();constrequestData={url:'https://example.com/data',method:'GET'};performPossumRequest(requestData).then(response=>console.log(response)).catch(error=>console.error(error));

Customization

PossumRequest

interfacePossumeRequest{url:string;method:'GET'|'POST'|'PUT'|'PATCH'|'DELETE';data?:any,headers:any;}

PossumClientOptions

interfacePossumClientOptions{/**     * Options to define the storage possum would use to store failed requests.     */store?:PossumStoreConfigOptions;/**     * If true possum would attach an event listener to process stored failed requests on `DOMContentLoaded`.     * This option only works while on the browser     */retryOnPageLoad?:boolean;}

Configuring Storage

import{PossumClient}from"possum-client";import{createClient}from'redis';constredisClient=awaitcreateClient().on('error',err=>console.log('Redis Client Error',err)).connect();// configuring possum to use redis to store failed requestsconst{performPossumRequest}=PossumClient({store:{get:async(id)=>{constdata=awaitredisClient.get(id);returndata ?JSON.parse(data) :null;},set:async(id,data)=>{awaitredisClient.set(id,JSON.stringify(data))}}});constrequestData={url:'https://example.com/data',method:'GET'};performPossumRequest(requestData).then(response=>console.log(response)).catch(error=>console.error(error));

API Reference

  • performPossumRequest(request: Request): Promise<any>
  • processFailedRequestsOnLoad(): void
  • PossumClient(options?: PossumClientOptions): { performPossumRequest, processFailedRequestsOnLoad }

Contributing

Contributions are always welcome!If you have new features to introduce or bugs to squash, kindly submitaPull Request (PR) to make your mark. Your participation is highlyappreciated.

License

This project is licensed under the MIT License - see theLICENSE file for details.

About

Async lightweight http client with in-built reconciliation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp