diff options
Diffstat (limited to 'node_modules/rollup-plugin-node-polyfills/polyfills/http-lib/to-arraybuffer.js')
| -rw-r--r-- | node_modules/rollup-plugin-node-polyfills/polyfills/http-lib/to-arraybuffer.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/node_modules/rollup-plugin-node-polyfills/polyfills/http-lib/to-arraybuffer.js b/node_modules/rollup-plugin-node-polyfills/polyfills/http-lib/to-arraybuffer.js new file mode 100644 index 0000000..b0a4671 --- /dev/null +++ b/node_modules/rollup-plugin-node-polyfills/polyfills/http-lib/to-arraybuffer.js @@ -0,0 +1,30 @@ +// from https://github.com/jhiesey/to-arraybuffer/blob/6502d9850e70ba7935a7df4ad86b358fc216f9f0/index.js + +// MIT License +// Copyright (c) 2016 John Hiesey +import {isBuffer} from 'buffer'; +export default function (buf) { + // If the buffer is backed by a Uint8Array, a faster version will work + if (buf instanceof Uint8Array) { + // If the buffer isn't a subarray, return the underlying ArrayBuffer + if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) { + return buf.buffer + } else if (typeof buf.buffer.slice === 'function') { + // Otherwise we need to get a proper copy + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength) + } + } + + if (isBuffer(buf)) { + // This is the slow version that will work with any Buffer + // implementation (even in old browsers) + var arrayCopy = new Uint8Array(buf.length) + var len = buf.length + for (var i = 0; i < len; i++) { + arrayCopy[i] = buf[i] + } + return arrayCopy.buffer + } else { + throw new Error('Argument must be a Buffer') + } +} |
