ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
27 lines (25 loc) • 883 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;