0.0.1 • Published 6 years ago

nock-interceptor v0.0.1

Weekly downloads
5
License
MIT
Repository
-
Last release
6 years ago

Nock Interceptor

Library for intercept Node.js requests

Node.js 8+ support.

Quick Start

Installation

npm install --save nock-interceptor

How does it Works?

nock-interceptor works by overriding Node's http.request function. It also overrides http.ClientRequest that created internally and returned from http.request.

Usage

You can simply intercept all requests:

const interceptor = require('nock-interceptor');

interceptor.activate((request, reply, passthrough) => {
  // do something
})

Information about current request is in request object. And you can: 1. reply to request with your data by means of reply 2. or pass through request by means of passthrough.

Api

interceptor: Object

const interceptor = require('nock-interceptor');

This object has two methods:

  1. activate(callback). callback has 3 arguments: callback: (request, reply, passthrough) => void.
  2. destroy() Stop intercepting Node.js http requests.

Activate callback arguments:

request: Object

It is object which has information about current intercepted request.

const interceptor = require('nock-interceptor');

interceptor.activate((request, reply, passthrough) => {
  const { method, headers, body, url, interceptedRequest } = request;
  
  // do something, e.g. reply or passthrough depending on the request params
})
  • method: string — request method.
  • headers: Object — request headers.
  • body: Buffer — request body.
  • url: string — request url.
  • interceptedRequest: InterceptedRequest — request object. The InterceptedRequest class extends original http.ClientRequest.

reply: ({ status, headers, body }) => void

It is function for replying to intercepted request. It is provided 3 arguments for response:

  • status: number — response status (default 200).
  • headers: Object — response headers.
  • body: string | Buffer — response body.
const interceptor = require('nock-interceptor');

interceptor.activate((request, reply, passthrough) => {
  // intercepted all requests and replied with a same response
  reply({body: 'This request has been intercepted'})
})

passthrough: async () => response

It is function for passthrough intercepted request. It returned response of request:

  • status: number — response status.
  • headers: Object — response headers.
  • body: Buffer — response body.
const interceptor = require('nock-interceptor');

interceptor.activate(async (request, reply, passthrough) => {
  const response = await passthrough();

  // e.g. logging response and request
})

License

MIT