// @ts-nocheck import { serve } from 'https://deno.land/std@0.120.0/http/server.ts'; import { serveFile } from 'https://deno.land/std@0.120.0/http/file_server.ts'; import { fromFileUrl } from 'https://deno.land/std@0.120.0/path/mod.ts'; const clientRoot = new URL('./', import.meta.url); serve(async (req) => { const url = new URL(req.url); const localPath = new URL('./' + url.pathname, clientRoot); const filePath = fromFileUrl(localPath); const fileExists = await checkFileExists(filePath); if (fileExists) { return serveFile(req, filePath); } else { return await serveFile( req, fromFileUrl(new URL('./index.html', clientRoot)) ); } }); async function checkFileExists(filePath: string): Promise { try { await Deno.stat(filePath); return true; } catch (error) { if (error instanceof Deno.errors.NotFound) { return false; } else { throw error; } } }