tldraw/apps/dotcom-worker
David Sheldrick ee6aa172b2
Unfurl bookmarks in worker (#4039)
This PR adds a `GET /api/unfurl?url=blahblah` endpoint to our worker.

I tried out the existing cheerio implementation but it added 300kb to
our worker bundle in the end, due to transitive dependencies.

So I implemented the same logic with cloudflare's sanctioned streaming
HTML parser `HTMLRewriter` and it seems to work fine.

I also made the vscode extension do its fetching locally (from the node
process so it's not bound by security policies), retaining the cheerio
version for that. At the same time I fixed a bug in the RPC layer that
was preventing unfurled metadata from loading correctly.

In a few months we can retire the bookmark-extractor app by just
deleting it in the vercel dashboard.

### Change Type


<!--  Please select a 'Type' label ️ -->

- [ ] `feature` — New feature
- [x] `improvement` — Product improvement
- [ ] `api` — API change
- [ ] `bugfix` — Bug fix
- [ ] `other` — Changes that don't affect SDK users, e.g. internal or
.com changes


### Test Plan

1. Add a step-by-step description of how to test your PR here.
2.

- [ ] Unit Tests
- [ ] End to end tests

### Release Notes

- Do link unfurling on the same subdomain as all our other api
endpoints.
2024-07-01 14:40:03 +00:00
..
src Unfurl bookmarks in worker (#4039) 2024-07-01 14:40:03 +00:00
.gitignore unbrivate, dot com in (#2475) 2024-01-16 14:38:05 +00:00
CHANGELOG.md unbrivate, dot com in (#2475) 2024-01-16 14:38:05 +00:00
package.json Unfurl bookmarks in worker (#4039) 2024-07-01 14:40:03 +00:00
README.md unbrivate, dot com in (#2475) 2024-01-16 14:38:05 +00:00
tsconfig.json Unfurl bookmarks in worker (#4039) 2024-07-01 14:40:03 +00:00
wrangler.toml Initial bemo worker setup (#4017) 2024-07-01 11:35:23 +00:00

@tldraw/tlsync-worker

Enable database persistence for local dev

The values for env.SUPABASE_KEY and env.SUPABASE_URL are stored in the Cloudflare Workers dashboard for this worker. However we use --local mode for local development, which doesn't read these values from the dashboard.

To workaround this, create a file called .dev.vars under merge-server with the required values (which you can currently find at https://app.supabase.com/project/bfcjbbjqflgfzxhskwct/settings/api). This will be read by wrangler dev --local and used to populate the environment variables.

SUPABASE_URL=<url>
SUPABASE_KEY=<key>