From 9ecacdab50f6cab5c209901c92119451ed8c3b91 Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Sat, 21 Mar 2026 17:44:44 +0100 Subject: [PATCH] Handlebars Util --- backend/src/utils/handlebars.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 backend/src/utils/handlebars.ts diff --git a/backend/src/utils/handlebars.ts b/backend/src/utils/handlebars.ts new file mode 100644 index 0000000..5ea659b --- /dev/null +++ b/backend/src/utils/handlebars.ts @@ -0,0 +1,26 @@ +import Handlebars from "handlebars"; + +const createDocumentTemplateHandlebars = () => { + const instance = Handlebars.create(); + + instance.registerHelper("eq", (left, right) => left === right); + instance.registerHelper("ne", (left, right) => left !== right); + instance.registerHelper("gt", (left, right) => left > right); + instance.registerHelper("gte", (left, right) => left >= right); + instance.registerHelper("lt", (left, right) => left < right); + instance.registerHelper("lte", (left, right) => left <= right); + instance.registerHelper("and", (...args) => args.slice(0, -1).every(Boolean)); + instance.registerHelper("or", (...args) => args.slice(0, -1).some(Boolean)); + instance.registerHelper("not", (value) => !value); + instance.registerHelper("includes", (collection, value) => { + if (Array.isArray(collection) || typeof collection === "string") { + return collection.includes(value); + } + + return false; + }); + + return instance; +}; + +export const documentTemplateHandlebars = createDocumentTemplateHandlebars();