hono
Version:
Web framework built on Web Standards
58 lines (57 loc) • 1.36 kB
JavaScript
// src/helper/websocket/index.ts
var WSContext = class {
constructor(init) {
this.
this.raw = init.raw;
this.url = init.url ? new URL(init.url) : null;
this.protocol = init.protocol ?? null;
}
send(source, options) {
this.
}
raw;
binaryType = "arraybuffer";
get readyState() {
return this.
}
url;
protocol;
close(code, reason) {
this.
}
};
var createWSMessageEvent = (source) => {
return new MessageEvent("message", {
data: source
});
};
var defineWebSocketHelper = (handler) => {
return (...args) => {
if (typeof args[0] === "function") {
const [createEvents, options] = args;
return async function upgradeWebSocket(c, next) {
const events = await createEvents(c);
const result = await handler(c, events, options);
if (result) {
return result;
}
await next();
};
} else {
const [c, events, options] = args;
return (async () => {
const upgraded = await handler(c, events, options);
if (!upgraded) {
throw new Error("Failed to upgrade WebSocket");
}
return upgraded;
})();
}
};
};
export {
WSContext,
createWSMessageEvent,
defineWebSocketHelper
};