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

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

export const 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 const 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 const base64ToByteArray = strBase64 => {
  if (typeof strBase64 !== "string") {
    strBase64 = strBase64.toString();
  }
  const res = Buffer.from(strBase64, "base64");
  return res;
};

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