- Switch to addEventListener('fetch') pattern
- Use response.headers.set() instead of headers object
- wws uses Fetch API event handler pattern
- Avoid URL constructor (not available in wws)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
// Health check and API info endpoint
|
|
// Path: /api
|
|
|
|
const handler = (request) => {
|
|
const corsHeaders = {
|
|
'Access-Control-Allow-Origin': '*',
|
|
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
|
|
'Access-Control-Allow-Headers': 'Content-Type, Authorization',
|
|
'Content-Type': 'application/json'
|
|
}
|
|
|
|
if (request.method === 'OPTIONS') {
|
|
let response = new Response('')
|
|
response.headers.set('Access-Control-Allow-Origin', '*')
|
|
response.headers.set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
|
|
response.headers.set('Access-Control-Allow-Headers', 'Content-Type, Authorization')
|
|
return response
|
|
}
|
|
|
|
const data = {
|
|
status: 'ok',
|
|
service: 'mylder-wws',
|
|
version: '1.0.0',
|
|
timestamp: new Date().toISOString(),
|
|
endpoints: {
|
|
health: '/api',
|
|
chat: '/chat',
|
|
webhook: '/webhook'
|
|
},
|
|
runtime: 'wasm-workers-server',
|
|
features: [
|
|
'cloudflare-compatible',
|
|
'zero-vendor-lock-in',
|
|
'webassembly-sandbox'
|
|
]
|
|
}
|
|
|
|
let response = new Response(JSON.stringify(data, null, 2))
|
|
response.headers.set('Content-Type', 'application/json')
|
|
response.headers.set('Access-Control-Allow-Origin', '*')
|
|
return response
|
|
}
|
|
|
|
addEventListener('fetch', event => {
|
|
return event.respondWith(handler(event.request))
|
|
})
|