@firtoz/socka
Version:
Standard Schema–first WebSocket RPC for TypeScript — Bun, Hono, Node ws, Cloudflare Workers, Durable Objects
46 lines (45 loc) • 1.41 kB
JavaScript
// src/server/dispatchSockaInboundMessage.ts
async function dispatchSockaInboundMessage(session, wireFormat, data) {
if (typeof data === "string") {
await session.handleRawMessage(data);
return;
}
if (typeof Buffer !== "undefined" && Buffer.isBuffer(data)) {
if (wireFormat === "json") {
await session.handleRawMessage(data.toString("utf8"));
return;
}
await session.handleBinaryMessage(new Uint8Array(data).buffer);
return;
}
if (data instanceof ArrayBuffer) {
if (wireFormat === "json") {
await session.handleRawMessage(new TextDecoder().decode(data));
return;
}
await session.handleBinaryMessage(data);
return;
}
if (data instanceof Blob) {
if (wireFormat === "json") {
await session.handleRawMessage(await data.text());
} else {
await session.handleBinaryMessage(await data.arrayBuffer());
}
return;
}
if (ArrayBuffer.isView(data)) {
const v = data;
const view = new Uint8Array(v.buffer, v.byteOffset, v.byteLength);
if (wireFormat === "json") {
await session.handleRawMessage(new TextDecoder().decode(view));
return;
}
const copy = new Uint8Array(view.length);
copy.set(view);
await session.handleBinaryMessage(copy.buffer);
}
}
export { dispatchSockaInboundMessage };
//# sourceMappingURL=chunk-JR2GENNT.js.map
//# sourceMappingURL=chunk-JR2GENNT.js.map