diff --git a/src/server/views/helpers/handlebars.js b/src/server/views/helpers/handlebars.js index dc64dffa..271d5f2b 100644 --- a/src/server/views/helpers/handlebars.js +++ b/src/server/views/helpers/handlebars.js @@ -1,8 +1,19 @@ const _ = require('lodash'); const Handlebars = require('handlebars'); -const replacer = (key, value) => - _.isString(value) ? Handlebars.Utils.escapeExpression(value) : value; +const { SafeString, Util: { escapeExpression } } = Handlebars; + +const replacer = (key, value) => { + if (_.isObject(value)) { + return _.transform(value, (result, v, k) => { + result[escapeExpression(k)] = v; + }); + } else if (_.isString(value)) { + return escapeExpression(value); + } else { + return value; + } +} const helpers = { json(obj, pretty = false) { @@ -10,7 +21,7 @@ const helpers = { if (pretty) { args.push(2); } - return new Handlebars.SafeString(JSON.stringify(...args)); + return new SafeString(JSON.stringify(...args)); }, adjustedPage(currentPage, pageSize, newPageSize) {