//listhenbykazupon

listhen

Elegant HTTP Listener πŸ‘‚

1
0
1

listhen

πŸ‘‚ listhen

Elegant http listener

npm version
npm downloads
Github Actions
Codecov

βœ”οΈ Promisified interface for listening and closing server

βœ”οΈ Works with express/connect or plain http handle function

βœ”οΈ Support HTTP and HTTPS

βœ”οΈ Automatically assign a port or fallback to human friendly alternative (with get-port-please)

βœ”οΈ Automatically generate listening URL and show on console

βœ”οΈ Automatically copy URL to clipboard

βœ”οΈ Automatically open in browser (opt-in)

βœ”οΈ Automatically generate self signed certificate

βœ”οΈ Automatically detect test and production environments

βœ”οΈ Automatically close on exit signal

βœ”οΈ Gracefully shutdown server with http-shutdown

Install

Install using npm or yarn:

npm i listhen
# or
yarn add listhen

Import into your Node.js project:

// CommonJS
const { listen } = require('listhen')

// ESM
import { listen } from 'listhen'

Usage

undefinedFunction signature:undefined

const { url, getURL, server, close } = await listen(handle, options?)

undefinedPlain handle function:undefined

listen('/', ((_req, res) => {
  res.end('hi')
})

undefinedWith express/connect:undefined

const express = require('express')
const app = express()

app.use('/', ((_req, res) => {
  res.end('hi')
})

listen(app)

Options

port

  • Default: process.env.PORT or 3000 or memorized random (see get-port-please)

Port to listen.

hostname

  • Default: process.env.HOST || '0.0.0.0'

Default hostname to listen.

https

  • Default: false

Listen with https protocol. By default uses a self-signed certificated.

certificate

Path to https certificate files { key, cert }

selfsigned

Options for self-signed certificate (see selfsigned).

showURL

  • Default: true (force disabled on test environment)

Show a CLI message for listening URL.

baseURL

  • Default: /

open

  • Default: false (force disabled on test and production environments)

Open URL in browser. Silently ignores errors.

clipboard

  • Default: false (force disabled on test and production environments)

Copy URL to clipboard. Silently ignores errors.

isTest

  • Default: process.env.NODE_ENV === 'test'

Detect if running in a test environment to disable some features.

autoClose

  • Default: true

Automatically close when an exit signal is received on process.

License

MIT. Made with πŸ’–

[beta]v0.14.0