atob for Node.JS and Linux / Mac / Windows CLI (it's a one-liner)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

32 lines
860 B

(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;
}(window));