Skip to content

Commit

Permalink
chore: add deno-static entry
Browse files Browse the repository at this point in the history
  • Loading branch information
moonrailgun committed Oct 5, 2023
1 parent 235389b commit d7e8a9d
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 2 deletions.
8 changes: 6 additions & 2 deletions .github/workflows/deploy-deno.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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/[email protected]/http/file_server.ts
# entrypoint: https://deno.land/[email protected]/http/file_server.ts
entrypoint: deno-static-entry.ts
root: "./client/web/dist"
34 changes: 34 additions & 0 deletions client/web/scripts/deno-static-entry.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// @ts-nocheck
import { serve } from 'https://deno.land/[email protected]/http/server.ts';
import { serveFile } from 'https://deno.land/[email protected]/http/file_server.ts';
import { fromFileUrl } from 'https://deno.land/[email protected]/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;
}
}
}

0 comments on commit d7e8a9d

Please sign in to comment.