Bret Comnes 80459935e1
0.0.1
2020-02-12 16:58:30 -07:00

39 lines
742 B
JavaScript

const { Writable, Transform } = require('streamx')
const pump = require('pump')
const pumpify = require('pumpify')
function getStreamLength (readable) {
let length = 0
const dummyLoad = new Writable({
write (data, cb) {
length += data.length
cb(null)
}
})
return new Promise((resolve, reject) => {
pump(readable, dummyLoad, (err) => {
if (err) return reject(err)
resolve(length)
})
})
}
function meterStream (readable, statsCb) {
let bytesRead = 0
const meter = new Transform({
transform (data, cb) {
bytesRead += data.length
statsCb(bytesRead)
cb(null, data)
}
})
return pumpify(readable, meter)
}
module.exports = {
getStreamLength,
meterStream
}