1.8 KiB
1.8 KiB
Cloudflare Worker Integration
What It Is
Experimental Cloudflare Worker adapter for Elysia.
Setup
- Install Wrangler:
wrangler init elysia-on-cloudflare
- Apply adapter + compile:
import { Elysia } from 'elysia'
import { CloudflareAdapter } from 'elysia/adapter/cloudflare-worker'
export default new Elysia({
adapter: CloudflareAdapter
})
.get('/', () => 'Hello Cloudflare Worker!')
.compile() // Required
- Set compatibility date (min
2025-06-01):
// wrangler.json
{
"name": "elysia-on-cloudflare",
"main": "src/index.ts",
"compatibility_date": "2025-06-01"
}
- Dev server:
wrangler dev
# http://localhost:8787
No nodejs_compat flag needed.
Limitations
Elysia.file+ Static Plugin don't work (nofsmodule)- OpenAPI Type Gen doesn't work (no
fsmodule) - Cannot define Response before server start
- Cannot inline values:
// ❌ Throws error
.get('/', 'Hello Elysia')
// ✅ Works
.get('/', () => 'Hello Elysia')
Static Files
Use Cloudflare's built-in static serving:
// wrangler.json
{
"assets": { "directory": "public" }
}
Structure:
├─ public
│ ├─ kyuukurarin.mp4
│ └─ static/mika.webp
Access:
http://localhost:8787/kyuukurarin.mp4http://localhost:8787/static/mika.webp
Binding
Import env from cloudflare:workers:
import { env } from 'cloudflare:workers'
export default new Elysia({ adapter: CloudflareAdapter })
.get('/', () => `Hello ${await env.KV.get('my-key')}`)
.compile()
AoT Compilation
As of Elysia 1.4.7, AoT works with Cloudflare Worker. Drop aot: false flag.
Cloudflare now supports Function compilation during startup.
pnpm
Manual install:
pnpm add @sinclair/typebox openapi-types