1.0.7 • Published 1 year ago

hook-request v1.0.7

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

hook-request

The project has not fully determined its basic form, and the development version will include disruptive updates.

This library provides a way to hook into the native XMLHttpRequest and Fetch API calls in a browser. It allows you to intercept requests and responses to execute custom logic such as logging.

Features

  • Intercept and modify XHR and Fetch requests and responses.
  • Access the request and response context.

Installation

npm install hook-request
// OR
yarn add hook-request
// OR
pnpm install hook-request

Usage

To use the hooking functionality, you need to call hookRequest with the desired options.

hookRequest(options, window?)

This function injects hooks into the browser's XHR and Fetch.

Parameters

  • options: Configuration options for request hooks.

    The options allows you to specify the following optional callback functions:

    • onRequest: Called when request.
    • onResponse: Called when received response.
    • onError: Called when an error occurs during the request.

    Each callback provides a context object (IContext) which includes the request and response details, and for XHR, the actual XMLHttpRequest object.

  • window: The global window object, defaults to the current window.

Return

Return An object containing unHook and reHook functions to remove or reapply the hook.

Example

import { hookRequest } from 'hook-request';

hookRequest({
  onRequest: (context, xhr) => {
    console.log('onRequest', context);
  },
  onResponse: (context, xhr) => {
    console.log('onResponse', context);
  },
  onError: (err, context) => {
    console.error('onError', err);
  }
});

API

hookRequest

hookRequest(options: IOptions, win?: Window): { unHook, reHook }

Hook into both XMLHttpRequest and fetch APIs.

  • options: The options to configure the hooks.
  • win: The window object which defaults to the current window.

Returns an object with unHook and reHook methods to control the hook.

hookXHR

hookXHR(options: IOptions, win?: Window): { unHookXHR, reHookXHR }

Hook into the XMLHttpRequest.

hookFetch

hookFetch(options: IOptions, win?: Window): { unHookFetch, reHookFetch }

Hook into the fetch.

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago