Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

rummage

stream friendly JSON.stringify

Build Status

installation

npm install rummage

example

varfs=require('fs')varrummage=require('rummage')rummage({message: fs.createReadStream(__dirname+'/message.txt')}).pipe(process.stdout)// produces'{"message":"contents of message.txt\n"}'

special types

By default stream data is concatenated and output as a string, as per the above example. However, there are special instructions to treat streams as arrays, objects or raw JSON.

Imagine you want to retrieve a list of newline-delimited messages from a file and output them as JSON:

varfs=require('fs')varrummage=require('rummage')varsplit=require('split2')rummage({messages: {_array: messages()}// output as an array}).pipe(process.stdout)functionmessages(){returnfs.createReadStream(__dirname+'/messages.txt').pipe(split())}// produces'{"messages":["message 1","message 2","message 3"]}\n'

Or as an object:

varfs=require('fs')varrummage=require('rummage')varsplit=require('split2')varthrough=require('through2')rummage({messages: {_object: messages()}// output as an object}).pipe(process.stdout)functionmessages(){returnfs.createReadStream(__dirname+'/messages.txt').pipe(split()).pipe(through.obj(write))// transform so that we get [key, value] for each messagefunctionwrite(chunk,enc,cb){varkey=chunk.toString('utf8').slice(-1)cb(null,[key,chunk])}}// produces'{"messages":{"1":"message 1","2":"message 2","3":"message 3"]}\n'

And lastly, as raw JSON:

varfs=require('fs')varrummage=require('rummage')rummage({messages: {_json: messages()}// output as json}).pipe(process.stdout)functionmessages(){returnfs.createReadStream(__dirname+'/messages.json')}// produces'{"messages":{"1":"message 1","2":"message 2","3":"message 3"]}\n'

api

var stream = rummage(value)

Return a new readable stream of JSON from value

If a stream is encountered within value, or value is itself a stream, its data will be concatenated and output as a string by default. This behaviour can be overridden using special types, which are:

  • _string - output value as a string (default)
  • _json - output value as raw JSON
  • _array - output value as an array
  • _object - output value as an object. Each chunk of value must be an array consisting of [key, value]

See above for examples

similar modules

license

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages