mirror of https://github.com/hashicorp/consul
19 lines
596 B
JavaScript
19 lines
596 B
JavaScript
|
import { helper } from '@ember/component/helper';
|
||
|
import { get } from '@ember/object';
|
||
|
|
||
|
// Covers alpha-capitalized dot separated API keys such as
|
||
|
// `{{Name}}`, `{{Service.Name}}` etc. but not `{{}}`
|
||
|
const templateRe = /{{([A-Za-z.0-9_-]+)}}/g;
|
||
|
export default helper(function renderTemplate([template, vars]) {
|
||
|
if (typeof vars !== 'undefined' && typeof template !== 'undefined') {
|
||
|
return template.replace(templateRe, function(match, group) {
|
||
|
try {
|
||
|
return encodeURIComponent(get(vars, group) || '');
|
||
|
} catch (e) {
|
||
|
return '';
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
return '';
|
||
|
});
|