Socket
Socket
Sign inDemoInstall

@americanairlines/fetch-interceptor

Package Overview
Dependencies
7
Maintainers
4
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @americanairlines/fetch-interceptor

A lean package for intercepting fetch calls in node.


Version published
Maintainers
4
Created

Readme

Source

Fetch Interceptor

Written in Typescript

Fetch Interceptor is a small Typescript package that allows for the interception of requests made via Node-Fetch.

Usage

To install

$ npm i @americanairlines/fetch-interceptor

Create your interceptor

const interceptor = require("@americanairlines/fetch-interceptor");

function beforeFetch(requestInfo) {
  let { requestId, method, url, params, headers, body } = requestInfo;
  console.log("RequestId " + requestId);
  console.log("Request Type " + method);
  console.log("Request Url " + url);
  console.log("Request Params " + params);
  console.log("Request Headers " + headers);
  console.log("Request Body" + body);
}

function afterFetch(requestInfo) {
  let { requestId, method, url, params, headers, body } = requestInfo;
  console.log("RequestId " + requestId);
  console.log("Request Type " + method);
  console.log("Request Url " + url);
  console.log("Request Params " + params);
  console.log("Request Headers " + headers);
  console.log("Request Body" + body);
}

module.exports.default = interceptor(beforeController, afterController);

Using the interceptor.
It's important to import and use the interceptor you created in the same way you would use fetch. @americanairlines/fetch-interceptor just intercepts fetch. It accepts all the same arguments as node-fetch.

const fetch = require("../path/to/interceptor");

async function foo() {
  let bar = await fetch("https://some-site.com");
}

foo();

API

requestInfo

This is the logging object with the request info that the handler functions have access to.

Note

This package was designed to work with @americanairlines/controller-interceptor. Using this package in combination with @americanairlines/controller-interceptor provides the ability to trace connections between services with a TraceId. This TraceId does not have to be generated by @americanairlines/controller-interceptor. The requestId argument can be any string.

RequestInfo = {
  requestId: string; // The trace Id of the request
  method: string; // The http method of the request
  url: string; // The url that the request was made to
  params: Object; // The params passed to the request
  headers: Object; // The header object of the incoming/outgoing request
  body: Body; // The body of the incoming/outgoing request
}

beforeFetch/afterFetch

These functions are not passed the actual body or headers objects, just copies of them. You are not able to mutate these fields in the handler functions.

Author

Chandler Barlow

Collaborators

Steven Paulino

License

MIT

FAQs

Last updated on 06 Jul 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc