21 lines
464 B
JavaScript
21 lines
464 B
JavaScript
'use strict'
|
|
|
|
const fs = require('fs')
|
|
const { once } = require('events')
|
|
const { Transform } = require('stream')
|
|
|
|
async function run (opts) {
|
|
if (!opts.destination) throw new Error('kaboom')
|
|
const stream = fs.createWriteStream(opts.destination)
|
|
await once(stream, 'open')
|
|
const t = new Transform({
|
|
transform (chunk, enc, cb) {
|
|
setImmediate(cb, null, chunk.toString().toUpperCase())
|
|
}
|
|
})
|
|
t.pipe(stream)
|
|
return t
|
|
}
|
|
|
|
module.exports = run
|