| ; | |
| var Buffer = require('buffer').Buffer; | |
| function hasFrom() { | |
| // Node versions 5.x below 5.10 seem to have a `from` method | |
| // However, it doesn't clone Buffers | |
| // Luckily, it reports as `false` to hasOwnProperty | |
| return (Buffer.hasOwnProperty('from') && typeof Buffer.from === 'function'); | |
| } | |
| function cloneBuffer(buf) { | |
| if (!Buffer.isBuffer(buf)) { | |
| throw new Error('Can only clone Buffer.'); | |
| } | |
| if (hasFrom()) { | |
| return Buffer.from(buf); | |
| } | |
| var copy = new Buffer(buf.length); | |
| buf.copy(copy); | |
| return copy; | |
| } | |
| cloneBuffer.hasFrom = hasFrom; | |
| module.exports = cloneBuffer; | |