mirror of
https://github.com/LukeHagar/crossws.git
synced 2025-12-06 12:27:46 +00:00
refactor: import bun types from @types/bun
Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com>
This commit is contained in:
@@ -6,7 +6,7 @@ export default defineBuildConfig({
|
|||||||
rollup: {
|
rollup: {
|
||||||
inlineDependencies: true,
|
inlineDependencies: true,
|
||||||
},
|
},
|
||||||
externals: ["@cloudflare/workers-types", "bun-types"],
|
externals: ["@cloudflare/workers-types", "bun"],
|
||||||
hooks: {
|
hooks: {
|
||||||
async "build:done"(ctx) {
|
async "build:done"(ctx) {
|
||||||
const entries = Object.keys(ctx.pkg.exports || {})
|
const entries = Object.keys(ctx.pkg.exports || {})
|
||||||
|
|||||||
@@ -74,10 +74,10 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@cloudflare/workers-types": "^4.20240117.0",
|
"@cloudflare/workers-types": "^4.20240117.0",
|
||||||
|
"@types/bun": "^1.0.4",
|
||||||
"@types/node": "^20.11.10",
|
"@types/node": "^20.11.10",
|
||||||
"@types/web": "^0.0.135",
|
"@types/web": "^0.0.135",
|
||||||
"@types/ws": "^8.5.10",
|
"@types/ws": "^8.5.10",
|
||||||
"bun-types": "^1.0.25",
|
|
||||||
"changelogen": "^0.5.5",
|
"changelogen": "^0.5.5",
|
||||||
"consola": "^3.2.3",
|
"consola": "^3.2.3",
|
||||||
"eslint": "^8.56.0",
|
"eslint": "^8.56.0",
|
||||||
|
|||||||
12
pnpm-lock.yaml
generated
12
pnpm-lock.yaml
generated
@@ -8,6 +8,9 @@ devDependencies:
|
|||||||
'@cloudflare/workers-types':
|
'@cloudflare/workers-types':
|
||||||
specifier: ^4.20240117.0
|
specifier: ^4.20240117.0
|
||||||
version: 4.20240117.0
|
version: 4.20240117.0
|
||||||
|
'@types/bun':
|
||||||
|
specifier: ^1.0.4
|
||||||
|
version: 1.0.4
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^20.11.10
|
specifier: ^20.11.10
|
||||||
version: 20.11.10
|
version: 20.11.10
|
||||||
@@ -17,9 +20,6 @@ devDependencies:
|
|||||||
'@types/ws':
|
'@types/ws':
|
||||||
specifier: ^8.5.10
|
specifier: ^8.5.10
|
||||||
version: 8.5.10
|
version: 8.5.10
|
||||||
bun-types:
|
|
||||||
specifier: ^1.0.25
|
|
||||||
version: 1.0.25
|
|
||||||
changelogen:
|
changelogen:
|
||||||
specifier: ^0.5.5
|
specifier: ^0.5.5
|
||||||
version: 0.5.5
|
version: 0.5.5
|
||||||
@@ -967,6 +967,12 @@ packages:
|
|||||||
engines: {node: '>=10.13.0'}
|
engines: {node: '>=10.13.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/bun@1.0.4:
|
||||||
|
resolution: {integrity: sha512-2DO7sqwtpko3d3XP2kLpJsOkV12sSRt8cFR955JVB60m1DiXE56T+gJq+DcCczQ5khxgCDQKkyBRlgg5VH33Dw==}
|
||||||
|
dependencies:
|
||||||
|
bun-types: 1.0.25
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@types/estree@1.0.5:
|
/@types/estree@1.0.5:
|
||||||
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
|
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
// https://bun.sh/docs/api/websockets
|
// https://bun.sh/docs/api/websockets
|
||||||
|
|
||||||
// @ts-expect-error
|
import type { WebSocketHandler, ServerWebSocket } from "bun";
|
||||||
import type {} from "bun-types";
|
|
||||||
|
|
||||||
import { WebSocketMessage } from "../message";
|
import { WebSocketMessage } from "../message";
|
||||||
import { WebSocketError } from "../error";
|
import { WebSocketError } from "../error";
|
||||||
@@ -12,20 +11,13 @@ export interface AdapterOptions {}
|
|||||||
|
|
||||||
type ContextData = { _peer?: WebSocketPeer };
|
type ContextData = { _peer?: WebSocketPeer };
|
||||||
|
|
||||||
type WebSocketHooks = Extract<
|
|
||||||
Parameters<typeof Bun.serve<ContextData>>[0],
|
|
||||||
{ websocket: any }
|
|
||||||
>["websocket"];
|
|
||||||
|
|
||||||
type ServerWebSocket = Parameters<WebSocketHooks["message"]>[0];
|
|
||||||
|
|
||||||
export interface Adapter {
|
export interface Adapter {
|
||||||
websocket: WebSocketHooks;
|
websocket: WebSocketHandler<ContextData>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default defineWebSocketAdapter<Adapter, AdapterOptions>(
|
export default defineWebSocketAdapter<Adapter, AdapterOptions>(
|
||||||
(hooks, opts = {}) => {
|
(hooks, opts = {}) => {
|
||||||
const getPeer = (ws: ServerWebSocket) => {
|
const getPeer = (ws: ServerWebSocket<ContextData>) => {
|
||||||
if (ws.data?._peer) {
|
if (ws.data?._peer) {
|
||||||
return ws.data._peer;
|
return ws.data._peer;
|
||||||
}
|
}
|
||||||
@@ -76,7 +68,7 @@ export default defineWebSocketAdapter<Adapter, AdapterOptions>(
|
|||||||
);
|
);
|
||||||
|
|
||||||
class WebSocketPeer extends WebSocketPeerBase<{
|
class WebSocketPeer extends WebSocketPeerBase<{
|
||||||
bun: { ws: ServerWebSocket };
|
bun: { ws: ServerWebSocket<ContextData> };
|
||||||
}> {
|
}> {
|
||||||
get id() {
|
get id() {
|
||||||
let addr = this.ctx.bun.ws.remoteAddress;
|
let addr = this.ctx.bun.ws.remoteAddress;
|
||||||
|
|||||||
Reference in New Issue
Block a user