mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-01-16 23:00:51 +00:00
64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
import { PromiseVoidFunction } from "Common/Types/FunctionTypes";
|
|
import logger from "CommonServer/Utils/Logger";
|
|
import fsp from "fs/promises";
|
|
import Handlebars from "handlebars";
|
|
import Path from "path";
|
|
|
|
const loadPartials: PromiseVoidFunction = async (): Promise<void> => {
|
|
// get all partials in the partial folder and comile then and register then as partials in handlebars.
|
|
const partialsDir: string = Path.resolve(
|
|
process.cwd(),
|
|
"FeatureSet",
|
|
"Notification",
|
|
"Templates",
|
|
"Partials",
|
|
);
|
|
const filenames: string[] = await fsp.readdir(partialsDir);
|
|
filenames.forEach(async (filename: string) => {
|
|
const matches: RegExpMatchArray | null = filename.match(/^(.*)\.hbs$/);
|
|
if (!matches) {
|
|
return;
|
|
}
|
|
|
|
const name: string = matches[1]!;
|
|
const template: string = await fsp.readFile(
|
|
Path.resolve(partialsDir, filename),
|
|
{ encoding: "utf8", flag: "r" },
|
|
);
|
|
|
|
const partialTemplate: Handlebars.TemplateDelegate =
|
|
Handlebars.compile(template);
|
|
|
|
Handlebars.registerPartial(name, partialTemplate);
|
|
|
|
logger.debug(`Loaded partial ${name}`);
|
|
});
|
|
};
|
|
|
|
loadPartials().catch((err: Error) => {
|
|
logger.error("Error loading partials");
|
|
logger.error(err);
|
|
});
|
|
|
|
Handlebars.registerHelper("ifCond", function (v1, v2, options) {
|
|
if (v1 === v2) {
|
|
//@ts-ignore
|
|
return options.fn(this);
|
|
}
|
|
//@ts-ignore
|
|
return options.inverse(this);
|
|
});
|
|
|
|
Handlebars.registerHelper("concat", (v1: any, v2: any) => {
|
|
// contact v1 and v2
|
|
return v1 + v2;
|
|
});
|
|
|
|
Handlebars.registerHelper("ifNotCond", function (v1, v2, options) {
|
|
if (v1 !== v2) {
|
|
//@ts-ignore
|
|
return options.fn(this);
|
|
}
|
|
//@ts-ignore
|
|
return options.inverse(this);
|
|
});
|