You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
425 B
24 lines
425 B
'use strict'; |
|
|
|
const { Transform } = require('stream'); |
|
|
|
class CacheStream extends Transform { |
|
constructor() { |
|
super(); |
|
|
|
this._cache = []; |
|
} |
|
|
|
_transform(chunk, enc, callback) { |
|
const buf = chunk instanceof Buffer ? chunk : Buffer.from(chunk, enc); |
|
this._cache.push(buf); |
|
this.push(buf); |
|
callback(); |
|
} |
|
|
|
getCache() { |
|
return Buffer.concat(this._cache); |
|
} |
|
} |
|
|
|
module.exports = CacheStream;
|
|
|