12345678910111213141516171819202122232425 |
- /**
- * 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)
- }
- }
|