Skip to content

Commit b6e5a97

Browse files
authored
feat(bun): export getBunServer (#4626)
* feat(bun): export getBunServer * fix: add generic to jsdoc
1 parent 2a9cd95 commit b6e5a97

5 files changed

Lines changed: 21 additions & 23 deletions

File tree

src/adapter/bun/conninfo.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@ import { getBunServer } from './server'
88
* @returns ConnInfo
99
*/
1010
export const getConnInfo: GetConnInfo = (c: Context) => {
11-
const server = getBunServer(c)
11+
const server = getBunServer<{
12+
requestIP?: (req: Request) => {
13+
address: string
14+
family: string
15+
port: number
16+
} | null
17+
}>(c)
1218

1319
if (!server) {
1420
throw new TypeError('env has to include the 2nd argument of fetch.')

src/adapter/bun/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ export { bunFileSystemModule, toSSG } from './ssg'
88
export { createBunWebSocket, upgradeWebSocket, websocket } from './websocket'
99
export type { BunWebSocketData, BunWebSocketHandler } from './websocket'
1010
export { getConnInfo } from './conninfo'
11+
export { getBunServer } from './server'

src/adapter/bun/server.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { Context } from '../../context'
22
import { getBunServer } from './server'
3-
import type { BunServer } from './server'
43

54
describe('getBunServer', () => {
65
it('Should success to pick Server', () => {
7-
const server = {} as BunServer
6+
const server = {}
87

98
expect(getBunServer(new Context(new Request('http://localhost/'), { env: server }))).toBe(
109
server

src/adapter/bun/server.ts

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,11 @@
44
*/
55
import type { Context } from '../../context'
66

7-
/**
8-
* Bun Server Object
9-
*/
10-
export interface BunServer {
11-
requestIP?: (req: Request) => {
12-
address: string
13-
family: string
14-
port: number
15-
} | null
16-
upgrade<T>(
17-
req: Request,
18-
options?: {
19-
data: T
20-
}
21-
): boolean
22-
}
23-
247
/**
258
* Get Bun Server Object from Context
9+
* @template T - The type of Bun Server
2610
* @param c Context
2711
* @returns Bun Server
2812
*/
29-
export const getBunServer = (c: Context): BunServer | undefined =>
30-
('server' in c.env ? c.env.server : c.env) as BunServer | undefined
13+
export const getBunServer = <T>(c: Context): T | undefined =>
14+
('server' in c.env ? c.env.server : c.env) as T | undefined

src/adapter/bun/websocket.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,15 @@ export const createWSContext = (ws: BunServerWebSocket<BunWebSocketData>): WSCon
4646
}
4747

4848
export const upgradeWebSocket: UpgradeWebSocket<any> = defineWebSocketHelper((c, events) => {
49-
const server = getBunServer(c)
49+
const server = getBunServer<{
50+
upgrade<T>(
51+
req: Request,
52+
options?: {
53+
data: T
54+
}
55+
): boolean
56+
}>(c)
57+
5058
if (!server) {
5159
throw new TypeError('env has to include the 2nd argument of fetch.')
5260
}

0 commit comments

Comments
 (0)