opusdev/vector-similarity-api
1
1/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */2/* eslint-disable node/no-deprecated-api */3var buffer = require('buffer')4var Buffer = buffer.Buffer5 6// alternative to using Object.keys for old browsers7function copyProps (src, dst) {8 for (var key in src) {9 dst[key] = src[key]10 }11}12if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {13 module.exports = buffer14} else {15 // Copy properties from require('buffer')16 copyProps(buffer, exports)17 exports.Buffer = SafeBuffer18}19 20function SafeBuffer (arg, encodingOrOffset, length) {21 return Buffer(arg, encodingOrOffset, length)22}23 24SafeBuffer.prototype = Object.create(Buffer.prototype)25 26// Copy static methods from Buffer27copyProps(Buffer, SafeBuffer)28 29SafeBuffer.from = function (arg, encodingOrOffset, length) {30 if (typeof arg === 'number') {31 throw new TypeError('Argument must not be a number')32 }33 return Buffer(arg, encodingOrOffset, length)34}35 36SafeBuffer.alloc = function (size, fill, encoding) {37 if (typeof size !== 'number') {38 throw new TypeError('Argument must be a number')39 }40 var buf = Buffer(size)41 if (fill !== undefined) {42 if (typeof encoding === 'string') {43 buf.fill(fill, encoding)44 } else {45 buf.fill(fill)46 }47 } else {48 buf.fill(0)49 }50 return buf51}52 53SafeBuffer.allocUnsafe = function (size) {54 if (typeof size !== 'number') {55 throw new TypeError('Argument must be a number')56 }57 return Buffer(size)58}59 60SafeBuffer.allocUnsafeSlow = function (size) {61 if (typeof size !== 'number') {62 throw new TypeError('Argument must be a number')63 }64 return buffer.SlowBuffer(size)65}66 