JSPM

nest-local-https-proxy

1.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 574
  • Score
    100M100P100Q113030F
  • License MIT

A simple library to add HTTPS support to your HTTP NestJS application for local develoment, debugging, and testing.

Package Exports

  • nest-local-https-proxy
  • nest-local-https-proxy/dist/local-https-proxy.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nest-local-https-proxy) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Nest Logo

A lightweight local HTTPS proxy library for Nest framework apps (Express or Fastify) 🔀

NPM Version Build Status Test Results Test Coverage GitHub License

Description

A lightweight local HTTPS proxy library for Nest framework apps, supporting both Express and Fastify HTTP adapters, designed for use with self-signed SSL certificates.

⚠ Disclaimer

This library is intended only for use in local development, testing, and troubleshooting with self-signed SSL certificates. It is not recommended to use this in any production context or public-facing environment.

Always follow best practices when managing SSL certificates for any public-facing or production environment.

Self-signed SSL Certificates

See the following gist for info on creating self-signed SSL certificate PEM files using openssl:

Installation

$ npm i nest-local-https-proxy

Implementation

  1. Load your certificate and private key files into an HTTPS options (SecureContextOptions) object.

    const certPath = './cert.pem';
    const keyPath = './key.pem';
    let httpsOptions: SecureContextOptions;
    // Confirm local certificate files exist
    if (fs.existsSync(certPath) && fs.existsSync(keyPath)) {
      httpsOptions = {
        cert: fs.readFileSync(certPath),
        key: fs.readFileSync(keyPath),
      };
    } else {
      console.log('Failed to initalize HTTPS certificates for local SSL proxy');
    }
  2. Instatiate the LocalHttpsProxy class, providing your NestApplication instance, and the HTTPS options object.

    const httpsDevProxy = new LocalHttpsProxy(app, httpsOptions);
  3. (Optional) Provide callback functions to constructor or subscribe to events on LocalHttpsProxy instance.

    • Provide callback functions to constructor:

      const errorCallback = (error) => { console.error(`HTTPS proxy error occurred: ${error.message}`); };
      const listeningCallback = (httpsPort) => { console.log(`HTTPS listening on ${httpsPort}`); };
      const httpsDevProxy = new LocalHttpsProxy(app, httpsOptions, errorCallback, listeningCallback);
    • Subscribe to events:

      httpsDevProxy.on('listening', (httpsPort) => {
        console.log(`HTTPS listening on ${httpsPort}`);
      });
      httpsDevProxy.on('error', (error) => {
        console.error(`HTTPS proxy error occurred: ${error.message}`);
      });
  4. Start the proxy

    httpsDevProxy.start(port);

Test

# unit tests
$ npm run test

# test coverage
$ npm run test:cov

License

The nest-local-https-proxy project is MIT licensed.