UNPKG

r19

Version:

Simple remote procedure calls in TypeScript

37 lines (36 loc) 993 B
import { Buffer } from "node:buffer"; import { handleRPCRequest } from "./handleRPCRequest.js"; const createRPCMiddleware = (args) => { const fn = (req, res, next) => { if (req.method !== "POST") { res.statusCode = 405; res.end(); return next(); } const requestBodyChunks = []; req.on("data", (chunk) => { requestBodyChunks.push(chunk); }); req.on("end", async () => { const { body, headers, statusCode } = await handleRPCRequest({ procedures: args.procedures, body: Buffer.concat(requestBodyChunks), onError: args.onError }); if (statusCode) { res.statusCode = statusCode; } for (const headerName in headers) { res.setHeader(headerName, headers[headerName]); } res.end(Buffer.from(body), "binary"); next(); }); }; fn._procedures = args.procedures; return fn; }; export { createRPCMiddleware }; //# sourceMappingURL=createRPCMiddleware.js.map