( req: Request, res: Response, filename: string )
| 223 | * router.get("/", optionalAuth, (req, res) => serveHtmlWithConfig(req, res, "chat.html")); |
| 224 | */ |
| 225 | export async function serveHtmlWithConfig( |
| 226 | req: Request, |
| 227 | res: Response, |
| 228 | filename: string |
| 229 | ): Promise<void> { |
| 230 | const filePath = getPublicFilePath(filename); |
| 231 | |
| 232 | await enrichUserWithMembership(req.user); |
| 233 | await enrichUserWithAdmin(req.user); |
| 234 | const html = await fs.readFile(filePath, "utf-8"); |
| 235 | const injectedHtml = injectConfigIntoHtml(html, req.user); |
| 236 | |
| 237 | res.setHeader("Content-Type", "text/html"); |
| 238 | res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate"); |
| 239 | res.setHeader("Pragma", "no-cache"); |
| 240 | res.setHeader("Expires", "0"); |
| 241 | res.send(injectedHtml); |
| 242 | } |
| 243 | |
| 244 | /** |
| 245 | * Meta tag data for server-side rendering of social sharing previews. |
no test coverage detected