axios-merge

1.0.11 • Public • Published

axios-merge

Description

axios-merge is an axios helper library for merging identical requests. The library provides the following features:

  1. merge identical requests; subsequent requests will be merged into the preceding request, preserving the result of the preceding request.
  2. identical-requests-cancel; the preceding request will be cancelled and the result of the subsequent request will be kept.

Usage

Packaged build

npm run build
npm pack

Install

// node
npm install axios-merge --save

// browser
<script src="axios-merge/dist/index.min.js">

parameter signature

/**
 * Create merge helper function example
 * @params { axiosinstance } axiosInstance axios instance
 * @params { function } [customerAdaptar] axios custom adapter
 **/
const axiosmerge = new AxiosMerge(axiosInstance, customerAdaptar)

/**
 * @params { object } config request configuration, same as axios native configuration
 * @params { boolean } config.checkParams checks if the same request checks for parameters default true
 * @params { string } config.strategy set the processing strategy when this request is repeated. USE_FIRST keep the first result, USE_LAST keep the last result, USE_TUNNEL use the current result, default is USE_TUNNEL
 * @params { boolean } config.distributionResponse Distribute the final response to all identical requests, default is true
 * @params { function } config.cancelFn Optional parameters. function to cancel the request Note: This parameter only takes effect when strategy=USE_LAST https://axios-http.com/zh/docs/cancellation
 * @params { AxiosCancenToken } config.cancelToken Optional parameters. The beacon to cancel the request Note: This parameter only takes effect when strategy=USE_LAST https://axios-http.com/zh/docs/cancellation
 **/
instance.request(config)
instance.get(url[, config])
instance.delete(url[, config])
instance.head(url[, config])
instance.options(url[, config])
instance.post(url[, data[, config]])
instance.put(url[, data[, config]])
instance.patch(url[, data[, config]])

Create an instance

import axios from "axios";
import AXiosMerge, { strategy } from "axios-merge";

const instance = axios.create({ baseURL: "/" });
const axiosmerge = new AxiosMerge(instance);
// const axiosmerge = new AxiosMerge(axios)

Use within request interceptors

const CancelToken = axios;

instance.interceptors.request.use(
  function (config) {
    let fn = null;
    const cancelToken = new CancelToken((cancel) => {
      fn = cancel;
    });
    config.cancelToken = cancelToken; // beacon to cancel the request
    config.cancelFn = fn; // cancel function
    config.strategy = strategy.USE_FIRST; // USE_LAST USE_TUNNEL
    // do something before sending the request
    return config;
  },
  function (error) {
    // What to do about request errors
    return Promise.reject(error);
  }
);

Readme

Keywords

none

Package Sidebar

Install

npm i axios-merge

Weekly Downloads

0

Version

1.0.11

License

ISC

Unpacked Size

354 kB

Total Files

18

Last publish

Collaborators

  • wwwszsxcn