writsy
v1.0.8
Published
Write stream wrapper that supports async initialization and flush function
Downloads
3
Readme
writsy
Write stream wrapper that supports async initialization and flush function.
npm install writsy
var ws = writsy([opts])
var ws = writsy.obj([opts])
Wraps a new writable stream (or object stream) by passing init
callback function.
Supports optional flush
function that is called before 'finish' emitted.
var writsy = require('writsy')
...
var ws = writsy({
init (cb) {
// async initialization, error handling
mkdirp('/tmp/foo/', (err) => {
if (err) return cb(err)
cb(null, fs.createWriteStream('/tmp/foo/bar.txt'))
})
},
flush (cb) {
// flush before finish
fs.rename('/tmp/foo/bar.txt', './dest.txt', cb)
}
})
fs.createReadStream('loremipsum.txt').pipe(ws)
Or class inheritance by setting _init
and _flush
methods:
var Writsy = require('writsy')
class Writer extends Writsy {
constructor (opts) {
super(opts)
}
_init (cb) {
// async initialization, error handling
mkdirp('/tmp/foo/', (err) => {
if (err) return cb(err)
cb(null, fs.createWriteStream('/tmp/foo/bar.txt'))
})
}
_flush (cb) {
// flush before finish
fs.rename('/tmp/foo/bar.txt', './dest.txt', cb)
}
}
fs.createReadStream('loremipsum.txt').pipe(new Writer())
License
MIT