Source: helper/helper.js

'use strict';

/**
 * @classdesc Object providing helping methods.
 */
class Helper {
  /**
   * @desc Return string with {placeHolder} replaced by object properties
   * @since 1.0.0
   * @param {string} string
   * @param {Object} replacementMappingArray
   * @returns {string} string
   */
  replacePlaceholders(string, replacementMappingArray) {
    let processedString = string;
    const matches = new Set(processedString.match(/{[a-z]+}/gi));

    for (const placeholder of matches) {
      //Remove brackets
      const placeholderName = placeholder.substring(1, (placeholder.length - 1));

      if (replacementMappingArray[placeholderName]) {
        const regexp = new RegExp(placeholder, 'g');

        processedString = processedString.replace(regexp, replacementMappingArray[placeholderName]);
      }
    }

    return processedString;
  }
}

module.exports = new Helper();