/** * Convert a typed array to a Buffer without a copy * * Author: Feross Aboukhadijeh * License: MIT * * `npm install typedarray-to-buffer` */ var isTypedArray = require('is-typedarray').strict module.exports = function typedarrayToBuffer (arr) { if (isTypedArray(arr)) { // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer var buf = Buffer.from(arr.buffer) if (arr.byteLength !== arr.buffer.byteLength) { // Respect the "view", i.e. byteOffset and byteLength, without doing a copy buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength) } return buf } else { // Pass through all other types to `Buffer.from` return Buffer.from(arr) } }