Source: ReplaceTokens.js

/**
 * @module nyc/ReplaceTokens
 */

/**
 * @desc Class to provide string replacement functionality
 * @public
 * @abstract
 * @class
 * @constructor
 */
class ReplaceTokens {
  /**
   * @desc Replace tokens in a string with values from a provided object
   * @public
   * @method
   * @param {string} str String with tokens to be replaced
   * @param {Object<string, string>} values Values token for replacement
   * @return {string} String with replacement value substitution
   */
  replace(str, values) {
    Object.keys(values).forEach(name => {
      str = str.replace(new RegExp('\\$\\{' + name + '\\}', 'g'), values[name] !== undefined ? values[name] : '')
    })
    return str
  }
}

export default ReplaceTokens