Я нашел решение своей проблемы с помощью Рули .
import Handlebars from 'handlebars'
Handlebars.registerHelper('+', (x, y) => x + y)
Handlebars.registerHelper('-', (x, y) => x - y)
Handlebars.registerHelper('*', (x, y) => x * y)
Handlebars.registerHelper('/', (x, y) => x / y)
const createTemplate = (templateStr) => {
const template = Handlebars.compile(templateStr)
return (data) => template(data)
}
вот как это используется
createTemplate("test {{'+' val 2}}")({ val: 13 }) // yields 15
Это работает именно так, как мне нужно, и даже может выполнять вложенные математические задачи
createTemplate("test {{'*' ('+' val 2) 3}}")({ val: 13 }) // yields 45