chore: add deno-static entry

pull/147/merge
moonrailgun 1 year ago
parent 235389b394
commit d7e8a9d592

@ -48,13 +48,17 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Build step
run: "cd client/web && pnpm build" # 📝 Update the build command(s) if necessary
run: cd client/web && pnpm build
env:
SERVICE_URL: https://tailchat-nightly.moonrailgun.com
- name: Copy Deno Entry
run: cd client/web && cp ./scripts/deno-static-entry.ts ./dist/deno-static-entry.ts
- name: Upload to Deno Deploy
uses: denoland/deployctl@v1
with:
project: "tailchat-nightly"
entrypoint: https://deno.land/std@0.202.0/http/file_server.ts
# entrypoint: https://deno.land/std@0.202.0/http/file_server.ts
entrypoint: deno-static-entry.ts
root: "./client/web/dist"

@ -0,0 +1,34 @@
// @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<boolean> {
try {
await Deno.stat(filePath);
return true;
} catch (error) {
if (error instanceof Deno.errors.NotFound) {
return false;
} else {
throw error;
}
}
}
Loading…
Cancel
Save