hono 4.1.0-rc.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/bun/index.js +2 -0
- package/dist/adapter/bun/websocket.js +77 -0
- package/dist/adapter/cloudflare-workers/index.js +3 -1
- package/dist/adapter/cloudflare-workers/websocket.js +57 -0
- package/dist/adapter/deno/index.js +3 -1
- package/dist/adapter/deno/websocket.js +29 -0
- package/dist/cjs/adapter/bun/index.js +3 -0
- package/dist/cjs/adapter/bun/websocket.js +98 -0
- package/dist/cjs/adapter/cloudflare-workers/index.js +5 -2
- package/dist/cjs/adapter/cloudflare-workers/websocket.js +80 -0
- package/dist/cjs/adapter/deno/index.js +5 -2
- package/dist/cjs/adapter/deno/websocket.js +52 -0
- package/dist/cjs/client/client.js +4 -0
- package/dist/cjs/helper/ssg/index.js +9 -212
- package/dist/cjs/helper/ssg/middleware.js +57 -0
- package/dist/cjs/helper/ssg/ssg.js +212 -0
- package/dist/cjs/helper/websocket/index.js +32 -0
- package/dist/cjs/helper.js +1 -0
- package/dist/cjs/utils/cookie.js +27 -0
- package/dist/client/client.js +4 -0
- package/dist/helper/ssg/index.js +3 -204
- package/dist/helper/ssg/middleware.js +29 -0
- package/dist/helper/ssg/ssg.js +187 -0
- package/dist/helper/websocket/index.js +9 -0
- package/dist/helper.js +1 -0
- package/dist/types/adapter/bun/index.d.ts +1 -0
- package/dist/types/adapter/bun/websocket.d.ts +26 -0
- package/dist/types/adapter/cloudflare-workers/index.d.ts +1 -0
- package/dist/types/adapter/cloudflare-workers/websocket.d.ts +2 -0
- package/dist/types/adapter/deno/index.d.ts +1 -0
- package/dist/types/adapter/deno/websocket.d.ts +2 -0
- package/dist/types/client/types.d.ts +9 -0
- package/dist/types/helper/ssg/index.d.ts +2 -103
- package/dist/types/helper/ssg/middleware.d.ts +38 -0
- package/dist/types/helper/ssg/ssg.d.ts +70 -0
- package/dist/types/helper/websocket/index.d.ts +34 -0
- package/dist/utils/cookie.js +27 -0
- package/package.json +10 -2
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
// src/adapter/bun/index.ts
|
|
2
2
|
import { serveStatic } from "./serve-static.js";
|
|
3
3
|
import { bunFileSystemModule, toSSG } from "./ssg.js";
|
|
4
|
+
import { createBunWebSocket } from "./websocket.js";
|
|
4
5
|
export {
|
|
5
6
|
bunFileSystemModule,
|
|
7
|
+
createBunWebSocket,
|
|
6
8
|
serveStatic,
|
|
7
9
|
toSSG
|
|
8
10
|
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// src/adapter/bun/websocket.ts
|
|
2
|
+
import {
|
|
3
|
+
createWSMessageEvent
|
|
4
|
+
} from "../../helper/websocket/index.js";
|
|
5
|
+
var createWSContext = (ws) => {
|
|
6
|
+
return {
|
|
7
|
+
send: (source, options) => {
|
|
8
|
+
const sendingData = typeof source === "string" ? source : source instanceof Uint8Array ? source.buffer : source;
|
|
9
|
+
ws.send(sendingData, options?.compress);
|
|
10
|
+
},
|
|
11
|
+
raw: ws,
|
|
12
|
+
binaryType: "arraybuffer",
|
|
13
|
+
readyState: ws.readyState,
|
|
14
|
+
url: ws.data.url,
|
|
15
|
+
protocol: ws.data.protocol,
|
|
16
|
+
close(code, reason) {
|
|
17
|
+
ws.close(code, reason);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
var createBunWebSocket = () => {
|
|
22
|
+
const websocketConns = [];
|
|
23
|
+
const upgradeWebSocket = (createEvents) => {
|
|
24
|
+
return async (c, next) => {
|
|
25
|
+
const server = c.env;
|
|
26
|
+
const connId = websocketConns.push(await createEvents(c)) - 1;
|
|
27
|
+
const upgradeResult = server.upgrade(c.req.raw, {
|
|
28
|
+
data: {
|
|
29
|
+
connId,
|
|
30
|
+
url: new URL(c.req.url),
|
|
31
|
+
protocol: c.req.url
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
if (upgradeResult) {
|
|
35
|
+
return new Response(null);
|
|
36
|
+
}
|
|
37
|
+
await next();
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
const websocket = {
|
|
41
|
+
open(ws) {
|
|
42
|
+
const websocketListeners = websocketConns[ws.data.connId];
|
|
43
|
+
if (websocketListeners.onOpen) {
|
|
44
|
+
websocketListeners.onOpen(new Event("open"), createWSContext(ws));
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
close(ws, code, reason) {
|
|
48
|
+
const websocketListeners = websocketConns[ws.data.connId];
|
|
49
|
+
if (websocketListeners.onClose) {
|
|
50
|
+
websocketListeners.onClose(
|
|
51
|
+
new CloseEvent("close", {
|
|
52
|
+
code,
|
|
53
|
+
reason
|
|
54
|
+
}),
|
|
55
|
+
createWSContext(ws)
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
message(ws, message) {
|
|
60
|
+
const websocketListeners = websocketConns[ws.data.connId];
|
|
61
|
+
if (websocketListeners.onMessage) {
|
|
62
|
+
const normalizedReceiveData = typeof message === "string" ? message : message.buffer;
|
|
63
|
+
websocketListeners.onMessage(
|
|
64
|
+
createWSMessageEvent(normalizedReceiveData),
|
|
65
|
+
createWSContext(ws)
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
return {
|
|
71
|
+
upgradeWebSocket,
|
|
72
|
+
websocket
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
export {
|
|
76
|
+
createBunWebSocket
|
|
77
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// src/adapter/cloudflare-workers/websocket.ts
|
|
2
|
+
var upgradeWebSocket = (createEvents) => async (c, next) => {
|
|
3
|
+
const CFWebSocketPair = globalThis.WebSocketPair;
|
|
4
|
+
const events = await createEvents(c);
|
|
5
|
+
const upgradeHeader = c.req.header("Upgrade");
|
|
6
|
+
if (upgradeHeader !== "websocket") {
|
|
7
|
+
return await next();
|
|
8
|
+
}
|
|
9
|
+
const webSocketPair = new CFWebSocketPair();
|
|
10
|
+
const client = webSocketPair[0];
|
|
11
|
+
const server = webSocketPair[1];
|
|
12
|
+
const wsContext = {
|
|
13
|
+
binaryType: "arraybuffer",
|
|
14
|
+
close: (code, reason) => server.close(code, reason),
|
|
15
|
+
get protocol() {
|
|
16
|
+
return server.protocol;
|
|
17
|
+
},
|
|
18
|
+
raw: server,
|
|
19
|
+
get readyState() {
|
|
20
|
+
return server.readyState;
|
|
21
|
+
},
|
|
22
|
+
url: server.url ? new URL(server.url) : null,
|
|
23
|
+
send: (source) => server.send(source)
|
|
24
|
+
};
|
|
25
|
+
if (events.onOpen) {
|
|
26
|
+
server.addEventListener(
|
|
27
|
+
"open",
|
|
28
|
+
(evt) => events.onOpen && events.onOpen(evt, wsContext)
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
if (events.onClose) {
|
|
32
|
+
server.addEventListener(
|
|
33
|
+
"close",
|
|
34
|
+
(evt) => events.onClose && events.onClose(evt, wsContext)
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
if (events.onMessage) {
|
|
38
|
+
server.addEventListener(
|
|
39
|
+
"message",
|
|
40
|
+
(evt) => events.onMessage && events.onMessage(evt, wsContext)
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
if (events.onError) {
|
|
44
|
+
server.addEventListener(
|
|
45
|
+
"error",
|
|
46
|
+
(evt) => events.onError && events.onError(evt, wsContext)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
server.accept();
|
|
50
|
+
return new Response(null, {
|
|
51
|
+
status: 101,
|
|
52
|
+
webSocket: client
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
export {
|
|
56
|
+
upgradeWebSocket
|
|
57
|
+
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
// src/adapter/deno/index.ts
|
|
2
2
|
import { serveStatic } from "./serve-static.js";
|
|
3
3
|
import { toSSG, denoFileSystemModule } from "./ssg.js";
|
|
4
|
+
import { upgradeWebSocket } from "./websocket.js";
|
|
4
5
|
export {
|
|
5
6
|
denoFileSystemModule,
|
|
6
7
|
serveStatic,
|
|
7
|
-
toSSG
|
|
8
|
+
toSSG,
|
|
9
|
+
upgradeWebSocket
|
|
8
10
|
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// src/adapter/deno/websocket.ts
|
|
2
|
+
var upgradeWebSocket = (createEvents) => async (c, next) => {
|
|
3
|
+
if (c.req.header("upgrade") !== "websocket") {
|
|
4
|
+
return await next();
|
|
5
|
+
}
|
|
6
|
+
const { response, socket } = Deno.upgradeWebSocket(c.req.raw);
|
|
7
|
+
const events = await createEvents(c);
|
|
8
|
+
const wsContext = {
|
|
9
|
+
binaryType: "arraybuffer",
|
|
10
|
+
close: (code, reason) => socket.close(code, reason),
|
|
11
|
+
get protocol() {
|
|
12
|
+
return socket.protocol;
|
|
13
|
+
},
|
|
14
|
+
raw: socket,
|
|
15
|
+
get readyState() {
|
|
16
|
+
return socket.readyState;
|
|
17
|
+
},
|
|
18
|
+
url: socket.url ? new URL(socket.url) : null,
|
|
19
|
+
send: (source) => socket.send(source)
|
|
20
|
+
};
|
|
21
|
+
socket.onopen = (evt) => events.onOpen && events.onOpen(evt, wsContext);
|
|
22
|
+
socket.onmessage = (evt) => events.onMessage && events.onMessage(evt, wsContext);
|
|
23
|
+
socket.onclose = (evt) => events.onClose && events.onClose(evt, wsContext);
|
|
24
|
+
socket.onerror = (evt) => events.onError && events.onError(evt, wsContext);
|
|
25
|
+
return response;
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
upgradeWebSocket
|
|
29
|
+
};
|
|
@@ -19,15 +19,18 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var bun_exports = {};
|
|
20
20
|
__export(bun_exports, {
|
|
21
21
|
bunFileSystemModule: () => import_ssg.bunFileSystemModule,
|
|
22
|
+
createBunWebSocket: () => import_websocket.createBunWebSocket,
|
|
22
23
|
serveStatic: () => import_serve_static.serveStatic,
|
|
23
24
|
toSSG: () => import_ssg.toSSG
|
|
24
25
|
});
|
|
25
26
|
module.exports = __toCommonJS(bun_exports);
|
|
26
27
|
var import_serve_static = require("./serve-static");
|
|
27
28
|
var import_ssg = require("./ssg");
|
|
29
|
+
var import_websocket = require("./websocket");
|
|
28
30
|
// Annotate the CommonJS export names for ESM import in node:
|
|
29
31
|
0 && (module.exports = {
|
|
30
32
|
bunFileSystemModule,
|
|
33
|
+
createBunWebSocket,
|
|
31
34
|
serveStatic,
|
|
32
35
|
toSSG
|
|
33
36
|
});
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var websocket_exports = {};
|
|
20
|
+
__export(websocket_exports, {
|
|
21
|
+
createBunWebSocket: () => createBunWebSocket
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(websocket_exports);
|
|
24
|
+
var import_websocket = require("../../helper/websocket");
|
|
25
|
+
const createWSContext = (ws) => {
|
|
26
|
+
return {
|
|
27
|
+
send: (source, options) => {
|
|
28
|
+
const sendingData = typeof source === "string" ? source : source instanceof Uint8Array ? source.buffer : source;
|
|
29
|
+
ws.send(sendingData, options?.compress);
|
|
30
|
+
},
|
|
31
|
+
raw: ws,
|
|
32
|
+
binaryType: "arraybuffer",
|
|
33
|
+
readyState: ws.readyState,
|
|
34
|
+
url: ws.data.url,
|
|
35
|
+
protocol: ws.data.protocol,
|
|
36
|
+
close(code, reason) {
|
|
37
|
+
ws.close(code, reason);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
const createBunWebSocket = () => {
|
|
42
|
+
const websocketConns = [];
|
|
43
|
+
const upgradeWebSocket = (createEvents) => {
|
|
44
|
+
return async (c, next) => {
|
|
45
|
+
const server = c.env;
|
|
46
|
+
const connId = websocketConns.push(await createEvents(c)) - 1;
|
|
47
|
+
const upgradeResult = server.upgrade(c.req.raw, {
|
|
48
|
+
data: {
|
|
49
|
+
connId,
|
|
50
|
+
url: new URL(c.req.url),
|
|
51
|
+
protocol: c.req.url
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
if (upgradeResult) {
|
|
55
|
+
return new Response(null);
|
|
56
|
+
}
|
|
57
|
+
await next();
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
const websocket = {
|
|
61
|
+
open(ws) {
|
|
62
|
+
const websocketListeners = websocketConns[ws.data.connId];
|
|
63
|
+
if (websocketListeners.onOpen) {
|
|
64
|
+
websocketListeners.onOpen(new Event("open"), createWSContext(ws));
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
close(ws, code, reason) {
|
|
68
|
+
const websocketListeners = websocketConns[ws.data.connId];
|
|
69
|
+
if (websocketListeners.onClose) {
|
|
70
|
+
websocketListeners.onClose(
|
|
71
|
+
new CloseEvent("close", {
|
|
72
|
+
code,
|
|
73
|
+
reason
|
|
74
|
+
}),
|
|
75
|
+
createWSContext(ws)
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
message(ws, message) {
|
|
80
|
+
const websocketListeners = websocketConns[ws.data.connId];
|
|
81
|
+
if (websocketListeners.onMessage) {
|
|
82
|
+
const normalizedReceiveData = typeof message === "string" ? message : message.buffer;
|
|
83
|
+
websocketListeners.onMessage(
|
|
84
|
+
(0, import_websocket.createWSMessageEvent)(normalizedReceiveData),
|
|
85
|
+
createWSContext(ws)
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
return {
|
|
91
|
+
upgradeWebSocket,
|
|
92
|
+
websocket
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
96
|
+
0 && (module.exports = {
|
|
97
|
+
createBunWebSocket
|
|
98
|
+
});
|
|
@@ -18,11 +18,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var cloudflare_workers_exports = {};
|
|
20
20
|
__export(cloudflare_workers_exports, {
|
|
21
|
-
serveStatic: () => import_serve_static_module.serveStatic
|
|
21
|
+
serveStatic: () => import_serve_static_module.serveStatic,
|
|
22
|
+
upgradeWebSocket: () => import_websocket.upgradeWebSocket
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(cloudflare_workers_exports);
|
|
24
25
|
var import_serve_static_module = require("./serve-static-module");
|
|
26
|
+
var import_websocket = require("./websocket");
|
|
25
27
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
28
|
0 && (module.exports = {
|
|
27
|
-
serveStatic
|
|
29
|
+
serveStatic,
|
|
30
|
+
upgradeWebSocket
|
|
28
31
|
});
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var websocket_exports = {};
|
|
20
|
+
__export(websocket_exports, {
|
|
21
|
+
upgradeWebSocket: () => upgradeWebSocket
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(websocket_exports);
|
|
24
|
+
const upgradeWebSocket = (createEvents) => async (c, next) => {
|
|
25
|
+
const CFWebSocketPair = globalThis.WebSocketPair;
|
|
26
|
+
const events = await createEvents(c);
|
|
27
|
+
const upgradeHeader = c.req.header("Upgrade");
|
|
28
|
+
if (upgradeHeader !== "websocket") {
|
|
29
|
+
return await next();
|
|
30
|
+
}
|
|
31
|
+
const webSocketPair = new CFWebSocketPair();
|
|
32
|
+
const client = webSocketPair[0];
|
|
33
|
+
const server = webSocketPair[1];
|
|
34
|
+
const wsContext = {
|
|
35
|
+
binaryType: "arraybuffer",
|
|
36
|
+
close: (code, reason) => server.close(code, reason),
|
|
37
|
+
get protocol() {
|
|
38
|
+
return server.protocol;
|
|
39
|
+
},
|
|
40
|
+
raw: server,
|
|
41
|
+
get readyState() {
|
|
42
|
+
return server.readyState;
|
|
43
|
+
},
|
|
44
|
+
url: server.url ? new URL(server.url) : null,
|
|
45
|
+
send: (source) => server.send(source)
|
|
46
|
+
};
|
|
47
|
+
if (events.onOpen) {
|
|
48
|
+
server.addEventListener(
|
|
49
|
+
"open",
|
|
50
|
+
(evt) => events.onOpen && events.onOpen(evt, wsContext)
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
if (events.onClose) {
|
|
54
|
+
server.addEventListener(
|
|
55
|
+
"close",
|
|
56
|
+
(evt) => events.onClose && events.onClose(evt, wsContext)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
if (events.onMessage) {
|
|
60
|
+
server.addEventListener(
|
|
61
|
+
"message",
|
|
62
|
+
(evt) => events.onMessage && events.onMessage(evt, wsContext)
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
if (events.onError) {
|
|
66
|
+
server.addEventListener(
|
|
67
|
+
"error",
|
|
68
|
+
(evt) => events.onError && events.onError(evt, wsContext)
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
server.accept();
|
|
72
|
+
return new Response(null, {
|
|
73
|
+
status: 101,
|
|
74
|
+
webSocket: client
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
78
|
+
0 && (module.exports = {
|
|
79
|
+
upgradeWebSocket
|
|
80
|
+
});
|
|
@@ -20,14 +20,17 @@ var deno_exports = {};
|
|
|
20
20
|
__export(deno_exports, {
|
|
21
21
|
denoFileSystemModule: () => import_ssg.denoFileSystemModule,
|
|
22
22
|
serveStatic: () => import_serve_static.serveStatic,
|
|
23
|
-
toSSG: () => import_ssg.toSSG
|
|
23
|
+
toSSG: () => import_ssg.toSSG,
|
|
24
|
+
upgradeWebSocket: () => import_websocket.upgradeWebSocket
|
|
24
25
|
});
|
|
25
26
|
module.exports = __toCommonJS(deno_exports);
|
|
26
27
|
var import_serve_static = require("./serve-static");
|
|
27
28
|
var import_ssg = require("./ssg");
|
|
29
|
+
var import_websocket = require("./websocket");
|
|
28
30
|
// Annotate the CommonJS export names for ESM import in node:
|
|
29
31
|
0 && (module.exports = {
|
|
30
32
|
denoFileSystemModule,
|
|
31
33
|
serveStatic,
|
|
32
|
-
toSSG
|
|
34
|
+
toSSG,
|
|
35
|
+
upgradeWebSocket
|
|
33
36
|
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var websocket_exports = {};
|
|
20
|
+
__export(websocket_exports, {
|
|
21
|
+
upgradeWebSocket: () => upgradeWebSocket
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(websocket_exports);
|
|
24
|
+
const upgradeWebSocket = (createEvents) => async (c, next) => {
|
|
25
|
+
if (c.req.header("upgrade") !== "websocket") {
|
|
26
|
+
return await next();
|
|
27
|
+
}
|
|
28
|
+
const { response, socket } = Deno.upgradeWebSocket(c.req.raw);
|
|
29
|
+
const events = await createEvents(c);
|
|
30
|
+
const wsContext = {
|
|
31
|
+
binaryType: "arraybuffer",
|
|
32
|
+
close: (code, reason) => socket.close(code, reason),
|
|
33
|
+
get protocol() {
|
|
34
|
+
return socket.protocol;
|
|
35
|
+
},
|
|
36
|
+
raw: socket,
|
|
37
|
+
get readyState() {
|
|
38
|
+
return socket.readyState;
|
|
39
|
+
},
|
|
40
|
+
url: socket.url ? new URL(socket.url) : null,
|
|
41
|
+
send: (source) => socket.send(source)
|
|
42
|
+
};
|
|
43
|
+
socket.onopen = (evt) => events.onOpen && events.onOpen(evt, wsContext);
|
|
44
|
+
socket.onmessage = (evt) => events.onMessage && events.onMessage(evt, wsContext);
|
|
45
|
+
socket.onclose = (evt) => events.onClose && events.onClose(evt, wsContext);
|
|
46
|
+
socket.onerror = (evt) => events.onError && events.onError(evt, wsContext);
|
|
47
|
+
return response;
|
|
48
|
+
};
|
|
49
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
50
|
+
0 && (module.exports = {
|
|
51
|
+
upgradeWebSocket
|
|
52
|
+
});
|
|
@@ -133,6 +133,10 @@ const hc = (baseUrl, options) => createProxy((opts) => {
|
|
|
133
133
|
}
|
|
134
134
|
return new URL(url);
|
|
135
135
|
}
|
|
136
|
+
if (method === "ws") {
|
|
137
|
+
const targetUrl = opts.args[0] && opts.args[0].param ? (0, import_utils.replaceUrlParam)(url, opts.args[0].param) : url;
|
|
138
|
+
return new WebSocket(targetUrl);
|
|
139
|
+
}
|
|
136
140
|
const req = new ClientRequestImpl(url, method);
|
|
137
141
|
if (method) {
|
|
138
142
|
options ??= {};
|