const obfuscateForChars = (text, placeholder = "*") => {
  const firstChar = text.substring(0, 1);
  const lastChar = text.substring(text.length - 1);
  const middleChars = text.substring(1, text.length - 1).replace(/[a-zA-Z0-9]/g, placeholder);
  return firstChar + middleChars + lastChar;
};

const obfuscate = (text, placeholder = "*") => {
  if (text.length <= 2) return text;
  if (text.length <= 5) {
    return obfuscateForChars(text);
  }

  const firstTwoChars = text.substring(0, 2);
  const lastChar = text.substring(text.length - 1);
  const middleChars = text.substring(2, text.length - 1).replace(/[a-zA-Z0-9]/g, placeholder);
  return firstTwoChars + middleChars + lastChar;
};

export { obfuscate };
