delay-proxy
You may know and use the chrome dev tools and its Network tab where you can emulate slow network connections. The problem is that it applies to all requests, you can't emulate together:
- a slow network
- a slow api.foo.com in general
- only a very slow endpoint on api.bar.com
With delay-proxy
, you can proxy your requests specifying a delay and a url.
http://localhost:8001/delay/{delay-in-ms}/{url}
Example calls:
Usage
Command line
Install globally
npm install -g delay-proxy
Once that done, you can launch it from anywhere with:
delay-proxy
Available options:
delay-proxy --help
delay-proxy --version
delay-proxy --port 9000
: lets you specify which port you want to use (default: 8001
)
Install locally
You might not like to install the package globally or wanna ship and use this package as a dev dependency in your project:
npm install --save-dev delay-proxy
Run it using npx (an npm package runner shipped with npm since v5.2.0):
npx delay-proxy
As a module
delay-proxy
also works as a required module.
const PORT = 8001;
const LOCAL_IP = require("my-local-ip")();
const { makeServer } = require("delay-proxy");
makeServer({ port: PORT, localIp: LOCAL_IP }).listen(PORT, () =>
console.log(
"delay-proxy now listening on",
`http://localhost:${PORT}`,
`${LOCAL_IP}:${PORT}`
)
);
Contributing
- Fork this repository to your own GitHub account and then clone it to your local device
- Uninstall
delay-proxy
if it's already installed: npm uninstall -g delay-proxy
- Link it to the global module directory:
npm link
After that, you can use the delay-proxy
command everywhere.
Only contribute on the server
If your feature/fix isn't about the cli but the server, you don't need to npm link
. Make sure you npm install
then run:
npm run dev
This will launch the server and reload it when you update the source code, thanks to nodemon.
Contributing guidelines
- follow the AngularJS git commit guidelines for your commit messages (it make it easier to generate changelog)
- to generate changelog:
npm run generate-changelog -- v1.1.0 v1.2.0
- your code will automatically be:
Author
Christophe Rosset (@topheman) - labs.topheman.com