export function stringToUtf8ByteArray(str) {
  if (typeof str !== 'string') {
    str = str.toString();
  }
  const res = Buffer.from(str, 'utf-8');
  return res;
}

export function utf8ByteArrayToString(ba) {
  if (!Buffer.isBuffer(ba)) {
    ba = Buffer.from(ba);
  }
  const res = ba.toString('utf-8');
  return res;
}

export function stringToUtf8Base64(str) {
  if (!Buffer.isBuffer(str)) {
    if (typeof str !== 'string') {
      str = str.toString();
    }
    str = Buffer.from(str, 'utf-8');
  }
  const res = str.toString('base64');
  return res;
}

export function utf8Base64ToString(strBase64) {
  if (!Buffer.isBuffer(strBase64)) {
    if (typeof strBase64 !== 'string') {
      strBase64 = strBase64.toString();
    }
    strBase64 = Buffer.from(strBase64, 'base64');
  }
  const res = strBase64.toString('utf-8');
  return res;
}

export function base64ToByteArray(strBase64) {
  if (typeof strBase64 !== 'string') {
    strBase64 = strBase64.toString();
  }
  const res = Buffer.from(strBase64, 'base64');
  return res;
}

export function byteArrayToBase64(ba) {
  if (!Buffer.isBuffer(ba)) {
    ba = Buffer.from(ba);
  }
  const res = ba.toString('base64');
  return res;
}