Unleash awesomeness. Private packages, team management tools, and powerful integrations. Get started with npm Orgs »

size-stream

1.0.1 • Public • Published

size-stream stability

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

Count the size of a stream in bytes.

Node's res object doesn't expose knowledge about the response size that it's sending. By counting the bytes passed to res it's now possible to retrieve both the size (e.g. for logging) and properly set the Content-Length header.

Installation

$ npm install size-stream

Usage

const httpNdjson = require('http-ndjson')
const sizeStream = require('size-stream')
const stdout = require('stdout-stream')
const pump = require('pump')
const http = require('http')
 
http.createServer((req, res) => {
  const httpLogger = httpNdjson(req, res)
  pump(httpLogger, stdout)
 
  const size = sizeStream()
  size.once('size', function (size) {
    httpLogger.setSize(size)
    res.setHeader('Content-Length', size)
  })
 
  pump(req, router(req, res), size, res)
}).listen()

API

size = sizeStream(res)

Create a PassThrough stream.

size.on('size', cb(size))

Emits the total stream size in bytes when the stream ends.

License

MIT

install

npm i size-stream

Downloadsweekly downloads

54

version

1.0.1

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability