From c80ffbfb4c72e8ad7e9a7f65611aa667c6776d64 Mon Sep 17 00:00:00 2001 From: Yusuke Wada Date: Sun, 2 Feb 2025 21:25:54 +0900 Subject: [PATCH] fix(node-ws): allow `Hono` with custom Env for `createNodeWebSocket` (#951) * fix(node-ws): allow `Hono` with custom Env * add changeset --- .changeset/ninety-dogs-decide.md | 5 +++++ packages/node-ws/package.json | 4 ++-- packages/node-ws/src/index.test.ts | 11 +++++++++++ packages/node-ws/src/index.ts | 3 ++- 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 .changeset/ninety-dogs-decide.md diff --git a/.changeset/ninety-dogs-decide.md b/.changeset/ninety-dogs-decide.md new file mode 100644 index 000000000..b26ca845d --- /dev/null +++ b/.changeset/ninety-dogs-decide.md @@ -0,0 +1,5 @@ +--- +'@hono/node-ws': patch +--- + +fix: allow `Hono` with custom Env for `createNodeWebSocket` diff --git a/packages/node-ws/package.json b/packages/node-ws/package.json index ad6e4f163..f7e76f702 100644 --- a/packages/node-ws/package.json +++ b/packages/node-ws/package.json @@ -9,7 +9,7 @@ "dist" ], "scripts": { - "test": "vitest --run", + "test": "tsc --noEmit && vitest --run", "build": "tsup ./src/index.ts --format esm,cjs --dts", "publint": "publint", "release": "yarn build && yarn test && yarn publint && yarn publish" @@ -48,4 +48,4 @@ "engines": { "node": ">=18.14.1" } -} +} \ No newline at end of file diff --git a/packages/node-ws/src/index.test.ts b/packages/node-ws/src/index.test.ts index 06b4e3b53..b991fcb24 100644 --- a/packages/node-ws/src/index.test.ts +++ b/packages/node-ws/src/index.test.ts @@ -149,4 +149,15 @@ describe('WebSocket helper', () => { expect((receivedMessage as Buffer).at(idx)).toBe(val) }) }) + + describe('Types', () => { + it('Should not throw a type error with an app with Variables generics', () => { + const app = new Hono<{ + Variables: { + foo: string + } + }>() + createNodeWebSocket({ app }) + }) + }) }) diff --git a/packages/node-ws/src/index.ts b/packages/node-ws/src/index.ts index 29e1257a3..df197b2d5 100644 --- a/packages/node-ws/src/index.ts +++ b/packages/node-ws/src/index.ts @@ -12,7 +12,8 @@ export interface NodeWebSocket { injectWebSocket(server: Server | Http2Server | Http2SecureServer): void } export interface NodeWebSocketInit { - app: Hono + // eslint-disable-next-line @typescript-eslint/no-explicit-any + app: Hono baseUrl?: string | URL }