baja/obj/byteUtil.js
/**
* @copyright 2024 Tridium, Inc. All Rights Reserved.
*/
/*eslint-env browser */
define([], function () {
'use strict';
/**
* @API Status: **Private**
*
* @since Niagara 4.14
* @exports nmodule/bajaScript/baja/obj/byteUtil
*/
const byteUtil = {};
/**
* Convert a base64 string to a byte array.
*
* @param {string} base64String base64-encoded data
* @returns {Uint8Array} bytes of the input data
*/
byteUtil.base64StringToByteArray = (base64String) => {
if (!base64String) {
return new Uint8Array();
}
let binaryString = atob(base64String);
let len = binaryString.length;
let uint8Array = new Uint8Array(len);
for (let i = 0; i < len; i++) {
uint8Array[i] = binaryString.charCodeAt(i);
}
return uint8Array;
};
/**
* Convert a byte array to a base64-encoded string
*
* @param {Uint8Array} byteArray data bytes
* @returns {string} encoded input data
*/
byteUtil.byteArrayToBase64String = (byteArray) => {
if (!byteArray) {
return '';
}
let binary = '';
let len = byteArray.byteLength;
for (let i = 0; i < len; i++) {
binary += String.fromCharCode(byteArray[i]);
}
return btoa(binary);
};
return byteUtil;
});