UNPKG

url-encode-base64

Version:

Better than "encodeURIComponent" to reduce character overhead

6 lines 1.35 kB
/*! * url-encode-base64 v1.0.0 * (c) 2022-2022 jobyrao<raojianb@mail2.sysu.edu.cn> * Released under the MIT License. */ var e,t;e=this,t=function(e){"use strict";e.urlDecode=function(e){var t={};Object.values("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-").forEach((function(e,r){t[e]=r}));for(var r="",n=0,o=e.length;n<o;n++){var a=e[n];"="!==a&&(r+=t[a].toString(2).padStart(6,"0"))}for(var f="",d=0,i=r.length;d+8<=i;d+=8){var s=r.substr(d,8),u=parseInt(s,2);f+=u<128&&37!=~~u?String.fromCodePoint(u):"%".concat(u.toString(16))}return decodeURIComponent(f)},e.urlEncode=function(e){if(!e)return"";for(var t=encodeURIComponent(e),r="",n=0,o=t.length;n<o;n++){var a=t[n];if("%"===a){var f=t[n+1]+t[n+2];r+=parseInt(f,16).toString(2).padStart(8,"0"),n+=2}else r+=a.charCodeAt().toString(2).padStart(8,"0")}var d=r.length%6,i=0;if(0!==d){for(var s=0;d%6!=0;)d+=8,s+=8;i=Math.floor(s/6),r+="".padEnd(s-6*i,"0")}for(var u="",l=0,c=r.length;l<c;l+=6){var p=r.substr(l,6);u+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-"[parseInt(p,2)]}return u+"".padEnd(i,"=")},Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).urlEncodeBase64={});