File tree Expand file tree Collapse file tree 5 files changed +39
-16
lines changed
Expand file tree Collapse file tree 5 files changed +39
-16
lines changed Original file line number Diff line number Diff line change @@ -33,14 +33,13 @@ export type ClientRequest<S extends Schema> = {
3333 : { }
3434 : { }
3535 ) => URL
36- } & {
37- // WebSocket
38- $ws : S [ '$get' ] extends { input : { json : UpgradedWebSocketResponseInputJSONType } }
36+ } & ( S [ '$get' ] extends { input : { json : UpgradedWebSocketResponseInputJSONType } }
3937 ? S [ '$get' ] extends { input : infer I }
40- ? ( args ?: Omit < I , 'json' > ) => WebSocket
41- : never
42- : never
43- }
38+ ? {
39+ $ws : ( args ?: Omit < I , 'json' > ) => WebSocket
40+ }
41+ : { }
42+ : { } )
4443
4544// eslint-disable-next-line @typescript-eslint/no-explicit-any
4645type BlankRecordToNever < T > = T extends any
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ export interface WSEvents {
1212 onError ?: ( evt : Event , ws : WSContext ) => void
1313}
1414
15- export type UpgradedWebSocketResponseInputJSONType = '__websocket' | undefined
15+ export type UpgradedWebSocketResponseInputJSONType = '__websocket'
1616
1717/**
1818 * Upgrade WebSocket Type
Original file line number Diff line number Diff line change 1+ import { expectTypeOf } from 'vitest'
2+ import { Hono } from '..'
3+ import { upgradeWebSocket } from '../helper'
4+ import { hc } from '.'
5+
6+ describe ( 'WebSockets' , ( ) => {
7+ const app = new Hono ( )
8+ . get (
9+ '/ws' ,
10+ upgradeWebSocket ( ( ) => ( { } ) )
11+ )
12+ . get ( '/' , ( c ) => c . json ( { } ) )
13+ const client = hc < typeof app > ( '/' )
14+
15+ it ( 'WebSocket route' , ( ) => {
16+ expectTypeOf ( client . ws ) . toMatchTypeOf < {
17+ $ws : ( ) => WebSocket
18+ } > ( )
19+ } )
20+ it ( 'Not WebSocket Route' , ( ) => {
21+ expectTypeOf <
22+ typeof client . index extends { $ws : ( ) => WebSocket } ? false : true
23+ > ( ) . toEqualTypeOf ( true )
24+ } )
25+ } )
Original file line number Diff line number Diff line change @@ -33,14 +33,13 @@ export type ClientRequest<S extends Schema> = {
3333 : { }
3434 : { }
3535 ) => URL
36- } & {
37- // WebSocket
38- $ws : S [ '$get' ] extends { input : { json : UpgradedWebSocketResponseInputJSONType } }
36+ } & ( S [ '$get' ] extends { input : { json : UpgradedWebSocketResponseInputJSONType } }
3937 ? S [ '$get' ] extends { input : infer I }
40- ? ( args ?: Omit < I , 'json' > ) => WebSocket
41- : never
42- : never
43- }
38+ ? {
39+ $ws : ( args ?: Omit < I , 'json' > ) => WebSocket
40+ }
41+ : { }
42+ : { } )
4443
4544// eslint-disable-next-line @typescript-eslint/no-explicit-any
4645type BlankRecordToNever < T > = T extends any
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ export interface WSEvents {
1212 onError ?: ( evt : Event , ws : WSContext ) => void
1313}
1414
15- export type UpgradedWebSocketResponseInputJSONType = '__websocket' | undefined
15+ export type UpgradedWebSocketResponseInputJSONType = '__websocket'
1616
1717/**
1818 * Upgrade WebSocket Type
You can’t perform that action at this time.
0 commit comments