diff options
| author | Adam Soltys <[email protected]> | 2026-10-01 06:55:14 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-01 06:55:14 -0700 |
| commit | 5d441ebbce6066c3636168ec5332ae9c2bdb8607 (patch) | |
| tree | 7e70c783fc0be40eccb09af7499db586c5410526 /feed/server.js | |
| parent | 981ff1c7f89b27ff3d7c2957e211365baff0a359 (diff) | |
| download | coinosv3-5d441ebbce6066c3636168ec5332ae9c2bdb8607.tar.gz coinosv3-5d441ebbce6066c3636168ec5332ae9c2bdb8607.zip | |
Serve a shared snapshot for the public feed
Build the default Popular feed once on the server and let browsers verify and paint its signed events before slow media finishes. Keep custom relays, pagination, filtering, and relay fallback on their existing paths.\n\nAdd stale-while-refresh persistence, service-worker bypass, development integration, and unit/browser coverage.
Diffstat (limited to 'feed/server.js')
| -rw-r--r-- | feed/server.js | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/feed/server.js b/feed/server.js new file mode 100644 index 0000000..2cf26a1 --- /dev/null +++ b/feed/server.js @@ -0,0 +1,12 @@ +import { startFeedCache } from './service.js'; +import { snapshotResponse } from './cache.js'; +const cache = await startFeedCache(); +const server = Bun.serve({ + hostname: process.env.HOST || '127.0.0.1', + port: Number(process.env.PORT || 8792), + fetch(req) { + if (new URL(req.url).pathname !== '/api/feed') return new Response('Not found', { status: 404 }); + return snapshotResponse(cache, req); + }, +}); +console.log(`Public feed cache listening on ${server.url}`); |
