/* eslint-disable node/no-deprecated-api */ var buffer = require('buffer') var Buffer = buffer.Buffer

// alternative to using Object.keys for old browsers function copyProps (src, dst) {

for (var key in src) {
  dst[key] = src[key]
}

} if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {

module.exports = buffer

} else {

// Copy properties from require('buffer')
copyProps(buffer, exports)
exports.Buffer = SafeBuffer

}

function SafeBuffer (arg, encodingOrOffset, length) {

return Buffer(arg, encodingOrOffset, length)

}

// Copy static methods from Buffer copyProps(Buffer, SafeBuffer)

SafeBuffer.from = function (arg, encodingOrOffset, length) {

if (typeof arg === 'number') {
  throw new TypeError('Argument must not be a number')
}
return Buffer(arg, encodingOrOffset, length)

}

SafeBuffer.alloc = function (size, fill, encoding) {

if (typeof size !== 'number') {
  throw new TypeError('Argument must be a number')
}
var buf = Buffer(size)
if (fill !== undefined) {
  if (typeof encoding === 'string') {
    buf.fill(fill, encoding)
  } else {
    buf.fill(fill)
  }
} else {
  buf.fill(0)
}
return buf

}

SafeBuffer.allocUnsafe = function (size) {

if (typeof size !== 'number') {
  throw new TypeError('Argument must be a number')
}
return Buffer(size)

}

SafeBuffer.allocUnsafeSlow = function (size) {

if (typeof size !== 'number') {
  throw new TypeError('Argument must be a number')
}
return buffer.SlowBuffer(size)

}