aboutsummaryrefslogtreecommitdiff
path: root/src/templates.ts
blob: 648bb5604100ace0c520c289081a1d9d90b4e1b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import handlebars from "handlebars";
import fs from "fs";

export interface Template {
  inputFile: string;
  outputFile: string;
  context: Record<string, string>;
  data?: string;
}

export default async (_template: Template): Promise<Template> => {
  const buffer = await fs.promises.readFile(_template.inputFile, "utf-8");

  const translate = handlebars.compile(buffer);
  const template = {
    ..._template,
    data: translate(_template.context),
  };

  await fs.promises.writeFile(template.outputFile, template.data);

  return template;
};