diff --git a/packages/node-ws/CHANGELOG.md b/packages/node-ws/CHANGELOG.md index aa63617e..4c95aff0 100644 --- a/packages/node-ws/CHANGELOG.md +++ b/packages/node-ws/CHANGELOG.md @@ -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 diff --git a/packages/node-ws/package.json b/packages/node-ws/package.json index 9c03134b..69cd9065 100644 --- a/packages/node-ws/package.json +++ b/packages/node-ws/package.json @@ -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", diff --git a/packages/node-ws/src/index.test.ts b/packages/node-ws/src/index.test.ts index 60c78a3d..9815e4fe 100644 --- a/packages/node-ws/src/index.test.ts +++ b/packages/node-ws/src/index.test.ts @@ -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((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 () => { diff --git a/packages/node-ws/src/index.ts b/packages/node-ws/src/index.ts index cea3e244..ed0c5c79 100644 --- a/packages/node-ws/src/index.ts +++ b/packages/node-ws/src/index.ts @@ -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) }