earlist v0.0.3
๐ earlist
๐ An elegant HTTP listener.
โจ Features
- Promisified interface for listening and closing server โจ
- Work with express/connect or plain http handle function ๐
- Support HTTP and HTTPS ๐
- Assign a port or fallback to human friendly alternative (with scotty-beam-me-up) ๐
- Generate listening URL and show on console ๐ก
- Copy URL to clipboard (dev only by default) ๐
- Open URL in browser (opt-in) ๐๐
- Generate self-signed certificate ๐
- Detect test and production environments ๐งช๐
- Close on exit signal โ
- Gracefully shutdown server with http-shutdown ๐ ๏ธ
โก๏ธ Install
Install:
#nyxi
nyxi earlist
#pnpm
pnpm add earlist
#npm
npm i earlist
#yarn
yarn add earlist
Import into your Node.js project:
// CommonJS
const { listen } = require('earlist')
// ESM
import { listen } from 'earlist'
๐ฏ Usage
Function signature:
const { url, getURL, server, close } = await listen(handle, options?)
Plain handle function:
listen((_req, res) => {
res.end('hi')
})
With express/connect:
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 scotty-beam-me-up)
Port to listen.
๐ hostname
- Default:
process.env.HOST || '0.0.0.0'
Default hostname to listen.
๐ https
- Type: Boolean | Object
- Default:
false
Listen on https with SSL enabled.
๐ Self Signed Certificate
By setting https: true
, earlist will use an auto generated self-signed certificate.
You can set https to an object for custom options. Possible options:
domains
: (Array) Default is['localhost', '127.0.0.1', '::1']
.validityDays
: (Number) Default is1
.
๐ User Provided Certificate
Set https: { cert, key }
where cert and key are path to the ssl certificates.
You can also provide inline cert and key instead of reading from filesystem. In this case, they should start with --
.
๐ 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 ๐