UNPKG

r19

Version:

Simple remote procedure calls in TypeScript

37 lines (36 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const node_buffer = require("node:buffer"); const handleRPCRequest = require("./handleRPCRequest.cjs"); 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.handleRPCRequest({ procedures: args.procedures, body: node_buffer.Buffer.concat(requestBodyChunks), onError: args.onError }); if (statusCode) { res.statusCode = statusCode; } for (const headerName in headers) { res.setHeader(headerName, headers[headerName]); } res.end(node_buffer.Buffer.from(body), "binary"); next(); }); }; fn._procedures = args.procedures; return fn; }; exports.createRPCMiddleware = createRPCMiddleware; //# sourceMappingURL=createRPCMiddleware.cjs.map