/**
* @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