diff options
Diffstat (limited to 'node_modules/atob/browser-atob.js')
-rw-r--r-- | node_modules/atob/browser-atob.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/node_modules/atob/browser-atob.js b/node_modules/atob/browser-atob.js new file mode 100644 index 000000000..f5fc8bce3 --- /dev/null +++ b/node_modules/atob/browser-atob.js @@ -0,0 +1,36 @@ +(function (w) { + "use strict"; + + var a2b = w.atob; + + function atob(str) { + // normal window + if ('function' === typeof a2b) { + return a2b(str); + } + // browserify (web worker) + else if ('function' === typeof Buffer) { + return new Buffer(str, 'base64').toString('binary'); + } + // ios web worker with base64js + else if ('object' === typeof w.base64js) { + // bufferToBinaryString + // https://github.com/coolaj86/unibabel-js/blob/master/index.js#L50 + var buf = w.base64js.b64ToByteArray(str); + + return Array.prototype.map.call(buf, function (ch) { + return String.fromCharCode(ch); + }).join(''); + } + // ios web worker without base64js + else { + throw new Error("you're probably in an ios webworker. please include use beatgammit's base64-js"); + } + } + + w.atob = atob; + + if (typeof module !== 'undefined') { + module.exports = atob; + } +}(window)); |