Socket
Book a DemoInstallSign in
Socket

pull-http

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pull-http

Http pull-stream functions

latest
Source
npmnpm
Version
1.0.2
Version published
Maintainers
1
Created
Source

pull-http stability

npm version build status test coverage downloads js-standard-style

Http pull-stream functions. Useful for composing middleware in high throughput servers.

Usage

const serverRouter = require('server-router')
const summary = require('server-summary')
const browserify = require('browserify')
const pullHttp = require('./pull-http')
const logHttp = require('http-ndjson')
const pull = require('pull-stream')
const bankai = require('bankai')
const bole = require('bole')
const http = require('http')
const path = require('path')

const clientp = path.join(__dirname, 'client-main.js')
const log = bole('main')

createServer({ port: 1337, logLevel: 'debug' })

function createServer (argv) {
  bole.output({ level: argv.logLevel, stream: process.stdout })
  const router = createRouter()
  const server = http.createServer(function (req, res) {
    const setSize = logHttp(req, res, log.debug)
    const source = pullHttp.createSource(req, res)
    const through = router(req, res, setSize)
    const sink = pullHttp.createSink(req, res, setSize)
    pull(source, through, sink)
  })
  server.listen(argv.port, summary(server))
}

function createRouter () {
  const router = serverRouter('/404')
  router.on('/', pullHttp.intercept(bankai.html()))
  router.on('/bundle.css', pullHttp.intercept(bankai.css()))
  router.on('/bundle.js', pullHttp.intercept(bankai.js(browserify, clientp)))
  return router
}

API

pullHttp.createSource(req, res)

Create a new source stream from an HTTP request. Attempts to parse JSON if content type is application/json.

pullHttp.createSink(req, res)

Creates a new sink stream. Sends errors if an error is detected. Sends JSON if any data is passed. If no data is passed, it acts as a noop sink, expecting an earlier stream to handle res.end().

pullHttp.intercept(httpFn) -> routerFn(req, res, params, setSize)

Wrap a Node stream behind a router to send data, and handle its own res.end() call. [more docs tbi]

Installation

$ npm install pull-http

See Also

License

MIT

Keywords

http

FAQs

Package last updated on 23 Mar 2016

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