{"library":"redirect-ssl","title":"HTTPS Redirect Middleware","description":"redirect-ssl is a Connect/Express middleware designed to enforce HTTPS for web applications, ensuring all incoming HTTP requests are redirected to their HTTPS equivalent. It leverages the `is-https` package for robust HTTPS detection, including support for `x-forwarded-proto` headers often found when deployed behind proxies. The current stable version is 3.0.0, which introduced significant changes like a TypeScript rewrite and renaming of key configuration options. While no strict release cadence is stated, major versions appear to introduce breaking changes, signaling active development and modernization. Its key differentiators include flexible configuration for proxy trust, custom redirect ports/hosts, and exclusion patterns, making it adaptable for various deployment scenarios including Nuxt.js applications. It aims to provide a reliable and configurable solution for ensuring secure communication by default.","language":"javascript","status":"active","last_verified":"Thu Apr 23","install":{"commands":["npm install redirect-ssl"],"cli":null},"imports":["import redirectSSL from 'redirect-ssl'","import redirectSSL from 'redirect-ssl'; app.use(redirectSSL.create({ redirectPort: 8443 }))","import redirectSSL, { RedirectOptions } from 'redirect-ssl'"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import express from 'express';\nimport redirectSSL from 'redirect-ssl';\n\nconst app = express();\nconst PORT = process.env.PORT || 3000;\nconst HTTPS_PORT = process.env.HTTPS_PORT || 8443;\n\n// Apply redirect-ssl middleware as the first middleware\n// Only enable in production and exclude localhost for development ease\napp.use(redirectSSL.create({\n  enabled: process.env.NODE_ENV === 'production',\n  exclude: ['localhost'],\n  redirectPort: HTTPS_PORT\n}));\n\napp.get('/', (req, res) => {\n  res.send('Hello from redirect-ssl example!');\n});\n\n// In a real application, you'd also have an HTTPS server listening on HTTPS_PORT\napp.listen(PORT, () => {\n  console.log(`HTTP server listening on port ${PORT}`);\n  console.log(`(HTTPS redirection target set to port ${HTTPS_PORT})`);\n  console.log('Try visiting http://localhost:3000 (will redirect in production)');\n});","lang":"typescript","description":"Demonstrates basic usage with Express, enabling HTTPS redirection only in production environments and configuring a custom HTTPS port for redirection, while excluding localhost.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}