delay-proxy v0.2.1
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:
- image: http://localhost:8001/delay/2000/https://via.placeholder.com/350x150/F00000/FFFFFF?text=Hello+world
- json:
curl http://localhost:8001/delay/1000/https://jsonplaceholder.typicode.com/posts/1/comments
Usage
Command line
Install globally
npm install -g delay-proxyOnce that done, you can launch it from anywhere with:
delay-proxyAvailable options:
delay-proxy --helpdelay-proxy --versiondelay-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-proxyRun it using npx (an npm package runner shipped with npm since v5.2.0):
npx delay-proxyAs a module
delay-proxy also works as a required module.
const PORT = 8001;
const LOCAL_IP = require("my-local-ip")(); // optional
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-proxyif 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 devThis 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
- to generate changelog:
- your code will automatically be:
Author
Christophe Rosset (@topheman) - labs.topheman.com