1
0
Fork 0
mirror of synced 2024-09-13 07:53:31 +12:00
budibase/packages/string-templates/src/helpers/Helper.js

30 lines
708 B
JavaScript
Raw Normal View History

class Helper {
constructor(name, fn, useValueFallback = true) {
this.name = name
this.fn = fn
this.useValueFallback = useValueFallback
}
register(handlebars) {
// wrap the function so that no helper can cause handlebars to break
2021-10-12 02:53:55 +13:00
handlebars.registerHelper(this.name, (value, info) => {
let context = {}
if (info && info.data && info.data.root) {
context = info.data.root
}
const result = this.fn(value, context)
if (result == null) {
return this.useValueFallback ? value : null
} else {
return result
}
})
}
unregister(handlebars) {
handlebars.unregisterHelper(this.name)
}
}
module.exports = Helper