matheus-rodrigues00 / utils

✨ Library to commonly used cross-projects utilities methods ✨
17 stars 11 forks source link

String Token Replace Method #4

Closed matheus-rodrigues00 closed 1 year ago

matheus-rodrigues00 commented 1 year ago

Create a method that replaces the tokens of a string based on a regex expression. Follows the code in javascript. It mus be translated to TypeScript in order to be well aligned with the library code.

/**
 * Replace tokens in a string based on a custom regular expression
 * @param {string} string - The input string containing the tokens.
 * @param {object} tokens - An object containing the tokens for replacement.
 * @param {RegExp} regex - The regular expression for identifying tokens.
 * @returns {string} - The string with tokens replaced.
 */
function replaceTokens(string, tokens, regex) {
  const newString = string.replace(regex, (match, ...groups) => {
    const tokenVar = groups.pop();

    if (tokens[tokenVar] !== undefined) {
      let aux = tokens[tokenVar];

      if (Array.isArray(aux)) {
        aux = aux.length;
      } else if (typeof aux === 'object') {
        aux = Object.keys(aux).length;
      } else {
        aux = 0;
      }

      return match.replace(regex, aux);
    }

    return match;
  });

  return newString;
}