Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

sink-transform

zoubin3.2kMIT2.0.0

Wrapper for concat-stream to make a transform

concat, transform, sink

readme

sink-transform

version status coverage dependencies devDependencies

A wrapper for concat-stream to make a transform to process the concated result.

Examples

Concat objects

example/reverse.js:

var sink = require('sink-transform')
var JSONStream = require('JSONStream')

var stream = sink.obj(function (rows, done) {
  for (var i = rows.length - 1; i >= 0; --i) {
    this.push(rows[i])
  }
  done()
})

stream.pipe(JSONStream.stringify()).pipe(process.stdout)

stream.write({ x:1 })
stream.write({ y:2 })
stream.write({ z:3 })
stream.end()

output:

⌘ node example/reverse.js
[
{"z":3}
,
{"y":2}
,
{"x":1}
]

Concat strings

example/concat.js:

var sink = require('sink-transform')
var fs = require('fs')

fs.createReadStream(__dirname + '/files/a.js')
  .pipe(sink.str(function (body, done) {
    console.log(body)
    done()
  }))

a.js:

console.log('a')

output:

⌘ node example/concat.js
console.log('a')

Usage

var sink = require('sink-transform')
var stream = sink(opts, trs)

stream = sink(opts={}, transformFn)

opts

Type: Object

Directly passsed to concat-stream as the first argument.

transformFn

Type: Function

Signature: (concated, done) => {}

Receives the concated result of concat-stream, and a callback to mark the end of the transform operation.

stream = sink.obj(transformFn)

Same with sink({ encoding: 'object' }, transformFn)

stream = sink.str(transformFn)

Same with sink({ encoding: 'string' }, transformFn)

changelog

1.0.0

  • Breaking change: sink() instead of sink.PassThrough()
  • Use tap
  • Use eslint

0.1.2

  • fix empty input case

0.1.1

  • .str sugar method

0.1.0

  • Wrapper for concat-stream to make a transform
  • .obj sugar method