Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@mattiash/http

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mattiash/http

Opinionated http(s) server

Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
3
50%
Maintainers
1
Weekly downloads
 
Created
Source

@mattiash/http

Opinionated http(s) server.

This module implements an http/https-server that behaves the way I think it should behave:

  • Allow use of persistent connections
  • listenAsync() returns a promise that resolves with AddressInfo when the server is listening.
  • closeAsync() stops listening for new connections immediately
  • closeAsync() closes all idle persistent connections immediately
  • closeAsync() closes all non-idle connections as soon as the response to the current request has been sent.
  • closeAsync() returns a promise that resolves when all connections have been closed
  • Works for http as well as https
  • Has type-definitions for typescript.
  • Has tests that check that it actually closes persistent connections correctly.

API

The module exports two functions, createHttpServer and createHttpsServer.

createHttpServer

Takes a requestListener argument that is passed unmodified to node's http.createServer. Returns an an object that inherits from node's http.Server and extends it with the following two methods:

listenAsync

Starts listening for new connections. Takes the same arguments as http.Server.listen. Returns a promise that resolves with the result of http.Server.address() when the server is actually listening.

closeAsync()

Closes the server as described above. Returns a promise that resolves when the server has stopped listening and all persistent connections have been closed.

createHttpsServer

Same as createHttpServer but for https.

Example

import { createHttpServer } from 'graceful-http-server'

let srv = createHttpServer((_req, res) => {
    res.writeHead(200)
    res.end('okay')
})

async function run() {
    let address = await srv.listenAsync()
    console.log(`Listening on port ${address.port}`)
    process.on('SIGINT', async () => {
        await srv.shutdownAsync()
        console.log('Server has been shut down')
    })
}

run()

FAQs

Package last updated on 31 Oct 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts