fix: use real package version in errortemplate

This commit is contained in:
Percs 2024-10-11 12:00:29 -05:00
parent 9305fdd96a
commit b9d60e96e2
2 changed files with 15 additions and 14 deletions

View file

@ -1,12 +1,14 @@
import { defineConfig } from "@rspack/cli";
import { rspack } from "@rspack/core";
import { RsdoctorRspackPlugin } from "@rsdoctor/rspack-plugin";
import { join } from "path";
import { fileURLToPath } from "url";
import obfuscator from "javascript-obfuscator";
const { obfuscate } = obfuscator;
import { readFile } from "node:fs/promises";
import { join } from "path";
import { fileURLToPath } from "url";
const __dirname = fileURLToPath(new URL(".", import.meta.url));
const packagemeta = JSON.parse(await readFile("package.json"));
export default defineConfig({
// change to production when needed
@ -66,6 +68,9 @@ export default defineConfig({
new rspack.ProvidePlugin({
dbg: [join(__dirname, "src/log.ts"), "default"],
}),
new rspack.DefinePlugin({
VERSION: JSON.stringify(packagemeta.version),
}),
process.env.OBFUSCATE === "true" && {
apply(compiler) {
compiler.hooks.compilation.tap("GyatPlugin", (compilation) => {

View file

@ -1,20 +1,18 @@
export function errorTemplate(trace: string, fetchedURL: string) {
// turn script into a data URI so we don"t have to escape any HTML values
const script = `
errorTrace.value = ${JSON.stringify(trace)};
fetchedURL.textContent = ${JSON.stringify(fetchedURL)};
for (const node of document.querySelectorAll("#hostname")) node.textContent = ${JSON.stringify(
location.hostname
)};
reload.addEventListener("click", () => location.reload());
version.textContent = "0.0.1";
`;
errorTrace.value = ${JSON.stringify(trace)};
fetchedURL.textContent = ${JSON.stringify(fetchedURL)};
for (const node of document.querySelectorAll("#hostname")) node.textContent = ${JSON.stringify(location.hostname)};
reload.addEventListener("click", () => location.reload());
version.textContent = ${JSON.stringify(VERSION)};
`;
return `<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Error</title>
<title>Scramjet</title>
<style>
* { background-color: white }
</style>
@ -42,9 +40,7 @@ export function errorTemplate(trace: string, fetchedURL: string) {
<button id="reload">Reload</button>
<hr />
<p><i>Scramjet v<span id="version"></span></i></p>
<script src="${
"data:application/javascript," + encodeURIComponent(script)
}"></script>
<script src="${"data:application/javascript," + encodeURIComponent(script)}"></script>
</body>
</html>
`;