diff options
Diffstat (limited to 'node_modules/clone-buffer/index.js')
-rw-r--r-- | node_modules/clone-buffer/index.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/clone-buffer/index.js b/node_modules/clone-buffer/index.js new file mode 100644 index 000000000..eb3837e67 --- /dev/null +++ b/node_modules/clone-buffer/index.js @@ -0,0 +1,28 @@ +'use strict'; + +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; |