@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
JavaScript
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 };