# node-buffer-v6-shim

A shim for older versions of node &lt; 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
----------------

```javascript
'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");
  }
}
```
