-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.js
More file actions
34 lines (29 loc) · 1.14 KB
/
build.js
File metadata and controls
34 lines (29 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const fs = require("fs");
const path = require("path");
const inky = require("inky-wasm");
// Read the source template
const template = fs.readFileSync("src/emails/welcome.inky", "utf-8");
// Build without data merge (template tags pass through)
const html = inky.transformInline(template);
fs.mkdirSync("dist", { recursive: true });
fs.writeFileSync("dist/welcome.html", html);
console.log("built dist/welcome.html");
// Build with data merge (fills in {{ variables }})
const data = fs.readFileSync("data/welcome.json", "utf-8");
const merged = inky.transformWithData(template, data);
fs.writeFileSync("dist/welcome-merged.html", merged);
console.log("built dist/welcome-merged.html");
// Generate plain text version
const plainText = inky.toPlainText(merged);
fs.writeFileSync("dist/welcome.txt", plainText);
console.log("built dist/welcome.txt");
// Run validation
const diagnostics = JSON.parse(inky.validate(template));
if (diagnostics.length > 0) {
console.log("\nvalidation warnings:");
diagnostics.forEach((d) => {
console.log(" [" + d.severity + "] " + d.rule + ": " + d.message);
});
} else {
console.log("\nno validation issues found");
}