import esbuild from "esbuild";
import htmlMinifier from "html-minifier-terser";
import fsSync from "fs";
const fs = fsSync.promises;
const esbuildProm = esbuild.build({
entryPoints: [`./index.js`, `./index.css`],
bundle: true,
minify: true,
sourcemap: false,
write: false,
outdir: `.`
});
const htmlProm = fs.readFile(`${import.meta.dirname}/index.html`, "utf-8");
const [build, html] = await Promise.all([esbuildProm, htmlProm]);
let js, css;
for(let i = 0; i < build.outputFiles.length; i++){
if(build.outputFiles[i].path.endsWith(".js")){
js = build.outputFiles[i].text;
}else if(build.outputFiles[i].path.endsWith(".css")){
css = build.outputFiles[i].text;
}
}
let data = await htmlMinifier.minify(html, {
collapseBooleanAttributes: true,
collapseInlineTagWhitespace: true,
collapseWhitespace: true,
conservativeCollapse: true,
decodeEntities: true,
noNewlinesBeforeTagClose: true,
removeComments: true
});
data = data.replace('', ``);
data = data.replace('', ``);
fs.writeFile(`${import.meta.dirname}/build.html`, data);