Merge branch 'main' into fix/node-ws-crashes

pull/1141/head
Shotaro Nakamura 2025-04-27 13:37:26 +09:00 committed by GitHub
commit f07da84fee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 15 additions and 6 deletions

View File

@ -1,5 +1,11 @@
# @hono/node-ws
## 1.1.2
### Patch Changes
- [#1138](https://github.com/honojs/middleware/pull/1138) [`237bff1b82f2c0adfcd015dc97538b36cfb5d418`](https://github.com/honojs/middleware/commit/237bff1b82f2c0adfcd015dc97538b36cfb5d418) Thanks [@leia-uwu](https://github.com/leia-uwu)! - Fix missing code and reason on `CloseEvent`
## 1.1.1
### Patch Changes

View File

@ -1,6 +1,6 @@
{
"name": "@hono/node-ws",
"version": "1.1.1",
"version": "1.1.2",
"description": "WebSocket helper for Node.js",
"type": "module",
"main": "dist/index.js",

View File

@ -170,18 +170,21 @@ describe('WebSocket helper', () => {
})
it('CloseEvent should be executed without crash', async () => {
const testCode = 3001
const testReason = 'Test!'
app.get(
'/',
upgradeWebSocket(() => ({
onClose() {
// doing some stuff here
onClose(event) {
expect(event.code).toBe(testCode)
expect(event.reason).toBe(testReason)
},
}))
)
const ws = new WebSocket('ws://localhost:3030/')
await new Promise<void>((resolve) => ws.on('open', resolve))
ws.close()
ws.close(testCode, testReason)
})
it('Should be able to send and receive binary content with good length', async () => {

View File

@ -146,9 +146,9 @@ export const createNodeWebSocket = (init: NodeWebSocketInit): NodeWebSocket => {
}
}
})
ws.on('close', () => {
ws.on('close', (code, reason) => {
try {
events?.onClose?.(new CloseEvent('close'), ctx)
events?.onClose?.(new CloseEvent('close', { code, reason: reason.toString() }), ctx)
} catch (e) {
;(options?.onError ?? console.error)(e)
}