stringstream
Encode and decode streams into string streams
Last updated 9 years ago by hichaelmart .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ gnpm install stringstream 
SYNC missed versions from official npm registry.

Decode streams into strings without setEncoding

const fs = require('fs')
const zlib = require('zlib')
const strs = require('stringstream')

const utf8Stream = fs.createReadStream('massiveLogFile.gz')
  .pipe(zlib.createGunzip())
  .pipe(strs('utf8'))

utf8Stream.on('data', str => console.log(`This will be a string: ${str}`))

API

  • strs(to, [options]) – creates a transform stream that converts the input into strings in to encoding (eg, utf8, hex, base64)
  • strs(from, to, [options]) – creates a transform stream converts the input from strings in from encoding to strings in to encoding

options can be anything compatible with the standard Node.js new stream.Transform([options]) constructor

NB: This library was originally written before Node.js correctly encoded base64 strings from streams

Back in the day, calling .setEncoding('base64') on a readable stream didn't align correctly, which was one of the main reasons I wrote this library – however this hasn't been the case for a long time, so this library is now really only useful in scenarios where you don't want to call .setEncoding() for whatever reason.

It also handles input and output text encodings:

// Stream from utf8 to hex to base64... Why not, ay.
const hex64Stream = fs.createReadStream('myFile.txt')
  .pipe(strs('utf8', 'hex'))
  .pipe(strs('hex', 'base64'))

Also deals with base64 output correctly by aligning each emitted data chunk so that there are no dangling = characters:

const stream = fs.createReadStream('myFile.jpg').pipe(strs('base64'))

let base64Str = ''

stream.on('data', data => base64Str += data)
stream.on('end', () => {
  console.log('My base64 encoded file is: ' + base64Str)
  console.log('Original file is: ' + Buffer.from(base64Str, 'base64'))
})

Current Tags

  • 1.0.0                                ...           latest (6 years ago)

8 Versions

  • 1.0.0                                ...           6 years ago
  • 0.0.6                                ...           7 years ago
  • 0.0.5                                ...           9 years ago
  • 0.0.4                                ...           12 years ago
  • 0.0.3                                ...           13 years ago
  • 0.0.2                                ...           13 years ago
  • 0.0.1                                ...           13 years ago
  • 0.0.0                                ...           13 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 23
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (0)
None
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |