From 7af3c46bfe25dfb00b87d6f438006ade664c8132 Mon Sep 17 00:00:00 2001 From: Royce59 Date: Fri, 31 Jul 2026 06:25:50 -0700 Subject: [PATCH] test --- build/prepare-sites-build.mjs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/build/prepare-sites-build.mjs b/build/prepare-sites-build.mjs index 2863e3c..8d87703 100644 --- a/build/prepare-sites-build.mjs +++ b/build/prepare-sites-build.mjs @@ -2,10 +2,31 @@ import { copyFile, mkdir } from 'node:fs/promises'; import { resolve } from 'node:path'; const root = process.cwd(); +const outputDirectory = resolve(root, 'dist'); const serverDirectory = resolve(root, 'dist', 'server'); +const appShell = resolve(outputDirectory, 'index.html'); +const browserRoutes = [ + 'encryption', + 'privacy', + 'proto', + 'proto/docs', + 'support', + 'terms', +]; await mkdir(serverDirectory, { recursive: true }); await copyFile( resolve(root, 'worker', 'index.js'), resolve(serverDirectory, 'index.js'), ); + +// Emit an extensionless HTML match for every client-side route. This keeps +// browser refreshes working even when the asset layer handles navigations +// before the Worker gets a chance to return the SPA fallback. +await Promise.all( + browserRoutes.map(async (route) => { + const routeFile = resolve(outputDirectory, `${route}.html`); + await mkdir(resolve(routeFile, '..'), { recursive: true }); + await copyFile(appShell, routeFile); + }), +);