1
0
Fork 0
mirror of synced 2024-09-18 10:20:11 +12:00
budibase/packages/string-templates/src/helpers/Helper.js

27 lines
640 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) => {
const 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