Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# 1.4.1 - 16 Sep 2025
Change:
- use srvx for full Web Standard Compatibility
- remove `@hono/node-server`

Improvement:
- support full WebSocket via crossws
- support `ElysiaFile` `content-type`, and `content-range`

# 1.4.0 - 13 Sep 2025
Improvement:
- support Elysia 1.4
Expand Down
229 changes: 97 additions & 132 deletions bun.lock

Large diffs are not rendered by default.

35 changes: 35 additions & 0 deletions example/demo.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { serve } from 'crossws/server'

serve({
fetch: () => new Response("A", {
status: 404
}),
websocket: {
upgrade(request) {
console.log(`[ws] upgrading ${request.url}...`)
return {
// namespace: new URL(req.url).pathname
headers: {}
}
},

open(peer) {
console.log(`[ws] open: ${peer}`)
},

message(peer, message) {
console.log('[ws] message', peer, message)
if (message.text().includes('ping')) {
peer.send('pong')
}
},

close(peer, event) {
console.log('[ws] close', peer, event)
},

error(peer, error) {
console.log('[ws] error', peer, error)
}
}
})
27 changes: 21 additions & 6 deletions example/index.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,38 @@
import { Elysia, file } from 'elysia'
import { Elysia, file, sse } from 'elysia'
import { cors } from '@elysiajs/cors'
import { swagger } from '@elysiajs/swagger'
import { openapi } from '@elysiajs/openapi'

import { node } from '../src'

const app = new Elysia({
adapter: node()
})
.use(cors())
.use(swagger())
.use(openapi())
.ws('/ws/:id', {
open({ data, subscribe, isSubscribed }) {
subscribe('welcome')
},
message(ws, message) {
ws.send(message)
},
close(ws, code, reason) {}
})
.get('/image', async () => file('test/kyuukurarin.mp4'))
.get('/generator', async function* () {
for (let i = 0; i < 100; i++) {
await new Promise(resolve => setTimeout(resolve, 10))
yield "A"
await new Promise((resolve) => setTimeout(resolve, 10))
yield sse('A')
}
})
.post('/', ({ body }) => body, {
type: 'json'
})
.get('/', () => 'ok')
.get('/', ({ request }) => {
console.log(request)

return 'ok'
})
.listen(3000)

// console.log(app.fetch.toString())
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@elysiajs/node",
"version": "1.4.0",
"version": "1.4.1-beta.0",
"description": "Plugin for Elysia for retreiving Bearer token",
"license": "MIT",
"scripts": {
Expand All @@ -11,16 +11,17 @@
"release": "npm run build && npm run test && npm publish --access public"
},
"dependencies": {
"@hono/node-server": "^1.19.2"
"crossws": "^0.4.1",
"srvx": "^0.8.9"
},
"peerDependencies": {
"elysia": ">= 1.4.0"
},
"devDependencies": {
"@elysiajs/cors": "^1.3.0",
"@elysiajs/swagger": "^1.3.0",
"@elysiajs/cors": "^1.4.0",
"@elysiajs/openapi": "^1.4.0",
"@types/node": "^22.10.2",
"elysia": "^1.4.0",
"elysia": "^1.4.9",
"eslint": "9.17.0",
"tsup": "^8.3.5",
"tsx": "^4.19.2",
Expand Down
Loading