| /** |
| * Convert a typed array to a Buffer without a copy |
| * |
| * Author: Feross Aboukhadijeh <https://feross.org> |
| * 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) |
| } |
| } |