import { Meteor } from 'meteor/meteor'; let logger; if (Meteor.isServer) { const { Logger } = require('../../../server/lib/logger/Logger'); logger = new Logger('TemplateVarHandler'); } export const templateVarHandler = function (variable, object) { const templateRegex = /#{([\w\-]+)}/gi; let match = templateRegex.exec(variable); let tmpVariable = variable; if (match == null) { if (!object.hasOwnProperty(variable)) { logger && logger.debug(`user does not have attribute: ${variable}`); return; } return object[variable]; } logger && logger.debug('template found. replacing values'); while (match != null) { const tmplVar = match[0]; const tmplAttrName = match[1]; if (!object.hasOwnProperty(tmplAttrName)) { logger && logger.debug(`user does not have attribute: ${tmplAttrName}`); return; } const attrVal = object[tmplAttrName]; logger && logger.debug(`replacing template var: ${tmplVar} with value: ${attrVal}`); tmpVariable = tmpVariable.replace(tmplVar, attrVal); match = templateRegex.exec(variable); } return tmpVariable; };