@centralping/http-redirect

A node HTTP server style request handler for simple redirection.

Usage no npm install needed!

<script type="module">
  import centralpingHttpRedirect from 'https://cdn.skypack.dev/@centralping/http-redirect';
</script>

README

@CentralPing/http-redirect

Build Status Coverage Status Dependency Status Greenkeeper Status Known Vulnerabilities

An HTTP request handler for node based http.Server style servers. It automatically sets the correct status code and headers for a redirect response. Function invoctioners will still need to end the request manually.

Notes

  • The redirect URL is required.
  • No safeguards against looped redirects.

Installation

npm i --save @centralping/http-redirect

API Reference

httpRedirect~redirect ⇒ function

Configures a request handler for http.Server style servers.

Kind: inner property of httpRedirect
Returns: function - - http.Server style request handler

Param Type Default Description
uri String the URI/URL to redirect HTTP request to.
[options] Object optional configuration for HTTP response.
[options.statusCode] Number 301 the response HTTP status code.
[options.header] Object any additional valid HTTP response header values.
[options.header.cacheControl] String 'public, immutable, s-maxage=31536000' the HTTP response header cache control.

Examples

Simple

const redirect = require('@centralping/http-redirect');

const redirector = redirect('https://foo.bar');

const server = someServerCreator();

// Redirect all the things
server.route('*', (req, res) => {
  // Do something interesting perhaps?
  // ...

  // Redirect this request
  redirector(req, res);

  // Important!!
  // End the response to send it on its merry way
  res.end();
});

Middleware

const redirect = require('@centralping/http-redirect');

const redirector = redirect('https://foo.bar');

const server = someServerCreator();

// Redirect all the things
server.route('*', redirector, (req, res) => res.end());

Test

npm test

With coverage reporting:

npm test -- --coverage

With file watch:

npm run watch

License

MIT