Skip to content

A framework to intercept HTTP calls made via the request-promise HTTP client.

License

Notifications You must be signed in to change notification settings

Cimpress-MCP/request-promise-middleware-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

request-promise-middleware-framework

A framework to intercept HTTP calls made via the request-promise HTTP client.

Installation

npm install request-promise-middleware-framework

Middleware Definition

The framework simply expects any middleware to be a function of form:

function(options, callback, next) {
  // Add custom logic here.
  next(options, callback);
}

The next() call will call the next middleware in the chain. To add any logic on the response, you can modify the callback as follows:

function(options, callback, next) {
  var _callback = function(err, response, body) {
    // Add custom response logic here.
    callback(err, response, body);
  };
  next(options, _callback);
}

If instead you want to completely short-circuit the HTTP call, you can simply call the callback and provide your own error or response:

function(options, callback, next) {
  var body = "Everything's fine."
  callback(null, { statusCode: 200, body: body }, body);
}

Examples

Once you've defined your middleware, you can simply register it by creating a new framework object, and then getting the request object:

var rpMiddlewareFramework = new RequestPromiseMiddlewareFramework(require("request-promise"), middleware);
var rp = rpMiddlewareFramework.getMiddlewareEnabledRequestPromise();

You can then use returned rp object just like you normally would.

For a full example inside an express app, see the sample directory within this repository.

License

MIT

About

A framework to intercept HTTP calls made via the request-promise HTTP client.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •