feat: add bun-fullstack agent and update skills
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
|
||||
# Cloudflare Worker Integration
|
||||
|
||||
## What It Is
|
||||
**Experimental** Cloudflare Worker adapter for Elysia.
|
||||
|
||||
## Setup
|
||||
1. Install Wrangler:
|
||||
```bash
|
||||
wrangler init elysia-on-cloudflare
|
||||
```
|
||||
|
||||
2. Apply adapter + compile:
|
||||
```typescript
|
||||
import { Elysia } from 'elysia'
|
||||
import { CloudflareAdapter } from 'elysia/adapter/cloudflare-worker'
|
||||
|
||||
export default new Elysia({
|
||||
adapter: CloudflareAdapter
|
||||
})
|
||||
.get('/', () => 'Hello Cloudflare Worker!')
|
||||
.compile() // Required
|
||||
```
|
||||
|
||||
3. Set compatibility date (min `2025-06-01`):
|
||||
```json
|
||||
// wrangler.json
|
||||
{
|
||||
"name": "elysia-on-cloudflare",
|
||||
"main": "src/index.ts",
|
||||
"compatibility_date": "2025-06-01"
|
||||
}
|
||||
```
|
||||
|
||||
4. Dev server:
|
||||
```bash
|
||||
wrangler dev
|
||||
# http://localhost:8787
|
||||
```
|
||||
|
||||
No `nodejs_compat` flag needed.
|
||||
|
||||
## Limitations
|
||||
1. `Elysia.file` + Static Plugin don't work (no `fs` module)
|
||||
2. OpenAPI Type Gen doesn't work (no `fs` module)
|
||||
3. Cannot define Response before server start
|
||||
4. Cannot inline values:
|
||||
```typescript
|
||||
// ❌ Throws error
|
||||
.get('/', 'Hello Elysia')
|
||||
|
||||
// ✅ Works
|
||||
.get('/', () => 'Hello Elysia')
|
||||
```
|
||||
|
||||
## Static Files
|
||||
Use Cloudflare's built-in static serving:
|
||||
```json
|
||||
// wrangler.json
|
||||
{
|
||||
"assets": { "directory": "public" }
|
||||
}
|
||||
```
|
||||
|
||||
Structure:
|
||||
```
|
||||
├─ public
|
||||
│ ├─ kyuukurarin.mp4
|
||||
│ └─ static/mika.webp
|
||||
```
|
||||
|
||||
Access:
|
||||
- `http://localhost:8787/kyuukurarin.mp4`
|
||||
- `http://localhost:8787/static/mika.webp`
|
||||
|
||||
## Binding
|
||||
Import env from `cloudflare:workers`:
|
||||
```typescript
|
||||
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:
|
||||
```bash
|
||||
pnpm add @sinclair/typebox openapi-types
|
||||
```
|
||||
Reference in New Issue
Block a user