43 lines
933 B
JavaScript
43 lines
933 B
JavaScript
module.exports = {
|
|
name: "frappe-html",
|
|
setup(build) {
|
|
let path = require("path");
|
|
let fs = require("fs/promises");
|
|
|
|
build.onResolve({ filter: /\.html$/ }, args => {
|
|
return {
|
|
path: path.join(args.resolveDir, args.path),
|
|
namespace: "frappe-html"
|
|
};
|
|
});
|
|
|
|
build.onLoad({ filter: /.*/, namespace: "frappe-html" }, args => {
|
|
let filepath = args.path;
|
|
let filename = path.basename(filepath).split(".")[0];
|
|
|
|
return fs
|
|
.readFile(filepath, "utf-8")
|
|
.then(content => {
|
|
content = scrub_html_template(content);
|
|
return {
|
|
contents: `\n\tfrappe.templates['${filename}'] = \`${content}\`;\n`
|
|
};
|
|
})
|
|
.catch(() => {
|
|
return {
|
|
contents: "",
|
|
warnings: [
|
|
{
|
|
text: `There was an error importing ${filepath}`
|
|
}
|
|
]
|
|
};
|
|
});
|
|
});
|
|
}
|
|
};
|
|
|
|
function scrub_html_template(content) {
|
|
content = content.replace(/`/g, "\\`");
|
|
return content;
|
|
}
|