Skip to content

kevinGodell/api-delay

Repository files navigation

api-delay

Build Status Build status

What?

  • Deliberately cause a delayed http response in an express app.

Why?

  • Simulate a slow api response to test front end handling.
  • Throttle api access to abusers, non-premium users, etc.

How?

  • Creates a function that can be used as app middleware or a route handler.
  • Set the time and trigger options to customize the delayed call to next().

When?

Installation

npm install api-delay

Testing

npm test

Usage

'use strict';

// create express app
const app = require('express')();

// get configurable middleware
const { delayNext, delayNextIf } = require('api-delay');

// will add a 200 millisecond delay in express request/response
const middleWareDelay = delayNext({ time: 200 });

// will add a 500 millisecond delay in express request/response if trigger function returns truthy
const conditionalMiddleWareDelay = delayNextIf({
  time: 500,
  trigger: receiver => {
    // if username is falsey, expression returns truthy to trigger delay
    return !receiver.req.body.username;
  }
});

// add as middleware to all routes
app.use(middleWareDelay);

// add as a handler to a specific route
app.all('/somepath', [conditionalMiddleWareDelay], (req, res) => {
  res.send('some_response');
});

See more usage in docs, examples, and tests

About

Configurable middleware to cause a delay on express routes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published