module.exports = { name: "xhiveframework-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: "xhiveframework-html", }; }); build.onLoad({ filter: /.*/, namespace: "xhiveframework-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\txhiveframework.templates['${filename}'] = \`${content}\`;\n`, watchFiles: [filepath], }; }) .catch(() => { return { contents: "", warnings: [ { text: `There was an error importing ${filepath}`, }, ], }; }); }); }, }; function scrub_html_template(content) { content = content.replace(/`/g, "\\`"); return content; }