1 /* eslint-disable node/no-deprecated-api */
2 var buffer = require('buffer')
3 var Buffer = buffer.Buffer
5 // alternative to using Object.keys for old browsers
6 function copyProps (src, dst) {
11 if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
12 module.exports = buffer
14 // Copy properties from require('buffer')
15 copyProps(buffer, exports)
16 exports.Buffer = SafeBuffer
19 function SafeBuffer (arg, encodingOrOffset, length) {
20 return Buffer(arg, encodingOrOffset, length)
23 // Copy static methods from Buffer
24 copyProps(Buffer, SafeBuffer)
26 SafeBuffer.from = function (arg, encodingOrOffset, length) {
27 if (typeof arg === 'number') {
28 throw new TypeError('Argument must not be a number')
30 return Buffer(arg, encodingOrOffset, length)
33 SafeBuffer.alloc = function (size, fill, encoding) {
34 if (typeof size !== 'number') {
35 throw new TypeError('Argument must be a number')
37 var buf = Buffer(size)
38 if (fill !== undefined) {
39 if (typeof encoding === 'string') {
40 buf.fill(fill, encoding)
50 SafeBuffer.allocUnsafe = function (size) {
51 if (typeof size !== 'number') {
52 throw new TypeError('Argument must be a number')
57 SafeBuffer.allocUnsafeSlow = function (size) {
58 if (typeof size !== 'number') {
59 throw new TypeError('Argument must be a number')
61 return buffer.SlowBuffer(size)