@feugene/mu
Version:
Helpful TS utilities without dependencies
61 lines • 1.71 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.utf8ToB64 = utf8ToB64;
exports.b64ToUtf8 = b64ToUtf8;
exports.b64ToUtf8Safe = b64ToUtf8Safe;
exports.utf8Tob64Safe = utf8Tob64Safe;
const strtr_1 = __importDefault(require("../string/strtr"));
const utf8ToB64Node = (str) => {
return Buffer.from(str).toString('base64');
};
const utf8ToB64Function = (string) => {
return utf8ToB64Node(string);
};
const b64ToUtf8Node = (string) => {
return Buffer.from(string, 'base64').toString();
};
const b64ToUtf8Function = (string) => {
return b64ToUtf8Node(string);
};
/**
* Encode string from Unicode to base-64
*
* @param {string} string
* @returns {string}
*/
function utf8ToB64(string) {
return utf8ToB64Function(unescape(encodeURIComponent(string)));
}
/**
* Decode from base-64 to Unicode string
*
* @param {string} string
* @returns {string}
*/
function b64ToUtf8(string) {
return decodeURIComponent(escape(b64ToUtf8Function(string)));
}
const SYMBOLS_STANDARD = '+/=';
const SYMBOLS_URL_SAFE = '-_~';
/**
* Decode from safe-base-64 to Unicode string
*
* @param {string} string
* @return {string}
*/
function b64ToUtf8Safe(string) {
return (0, strtr_1.default)(b64ToUtf8Function(string), SYMBOLS_STANDARD, SYMBOLS_URL_SAFE);
}
/**
* Encode from Unicode string to safe-base-64
*
* @param {string} string
* @return {string}
*/
function utf8Tob64Safe(string) {
return (0, strtr_1.default)(utf8ToB64Function(string), SYMBOLS_STANDARD, SYMBOLS_URL_SAFE);
}
//# sourceMappingURL=base64.js.map