r19
Version:
Simple remote procedure calls in TypeScript
37 lines (36 loc) • 1.15 kB
JavaScript
;
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