ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
23 lines (21 loc) • 785 B
text/typescript
/**
* Replace tokens by their value in the given string
*
* @param {string} template The template with interpolation tokens, e.g. 'Hello, %{name}'
* @param {object} data The data to interpolate, e.g. { name: 'John' }
* @returns {string} The interpolated string, e.g. 'Hello, John'
*/
export const substituteTokens = (template, data) =>
template && data
? String.prototype.replace.call(template, defaultTokenRegex, function (
expression,
argument
) {
if (!data.hasOwnProperty(argument) || data[argument] == null) {
return expression;
}
return data[argument];
})
: template;
// tokens are like 'Hello, %{name}'
const defaultTokenRegex = /%\{(.*?)\}/g;