1.0.5 • Published 7 years ago

buffer-v6-polyfill v1.0.5

Weekly downloads
505
License
(MIT OR Apache-2....
Repository
-
Last release
7 years ago

node-buffer-v6-shim

A shim for older versions of node < v6 for methods such as allow(), from(), etc

Install

# Latest v1.x
npm install --save git+https://git.daplie.com/Daplie/node-buffer-v6-shim.git#v1

# Whatever happens to be in npm
npm install --save buffer-v6-shim

Usage

'use strict';

require('buffer-v6-polyfill');

// all your codez ...

Show me the Code

'use strict';

if (Number(process.version.match(/^v(\d+\.\d+)/)[1]) >= 6.0) {
  return;
}

function newBuffer(data, encoding, len) {
  return new Buffer(data, encoding, len);
}

function newSlowBuffer(data, encoding, len) {
  var SlowBuffer = require('buffer').SlowBuffer;
  return new SlowBuffer(data, encoding, len);
}

if (!Buffer.alloc) {
  Buffer.alloc = newBuffer;
}
if (!Buffer.allocUnsafe) {
  Buffer.allocUnsafe = newBuffer;
}
if (!Buffer.allocUnsafeSlow) {
  Buffer.allocUnsafeSlow = newSlowBuffer;
}
if (!Buffer.from) {
  Buffer.from = newBuffer;
}

try {
  Buffer.from('1337', 'hex');
} catch(e) {
  // wish I could do something here to fix the broken Buffer.from
  try {
    Buffer.from = newBuffer;
  } catch(e) {
    // but alas, I cannot
    console.warn("Your node version has buggy Buffer.from support. Please update to node >= v4.5 or >= v6.3");
  }
}