UNPKG

@orpc/server

Version:

<div align="center"> <image align="center" src="https://orpc.unnoq.com/logo.webp" width=280 alt="oRPC logo" /> </div>

38 lines (34 loc) 1.24 kB
import { readAsBuffer, resolveMaybeOptionalOptions } from '@orpc/shared'; import { ServerPeer } from '@orpc/standard-server-peer'; import { c as createServerPeerHandleRequestFn } from '../../shared/server.UVMTOWrk.mjs'; import '@orpc/client'; import '@orpc/standard-server'; import '@orpc/contract'; import { b as StandardRPCHandler } from '../../shared/server.CYRYFTxo.mjs'; import '@orpc/client/standard'; import '../../shared/server.DZ5BIITo.mjs'; import '../../shared/server.B_fj3X5m.mjs'; class WsHandler { constructor(standardHandler) { this.standardHandler = standardHandler; } async upgrade(ws, ...rest) { const peer = new ServerPeer(ws.send.bind(ws)); ws.addEventListener("message", async (event) => { const message = Array.isArray(event.data) ? await readAsBuffer(new Blob(event.data)) : event.data; await peer.message( message, createServerPeerHandleRequestFn(this.standardHandler, resolveMaybeOptionalOptions(rest)) ); }); ws.addEventListener("close", () => { peer.close(); }); } } class RPCHandler extends WsHandler { constructor(router, options = {}) { super(new StandardRPCHandler(router, options)); } } export { RPCHandler, WsHandler };