amiddy
Version:
Middleware server with high configurability for development
1 lines • 792 B
JavaScript
import logger from"../logger.js";import proxyRegistry from"./registry.js";import proxyRecorder from"./recorder.js";const service={request:(proxyReq,req,res,options)=>{proxyRegistry.set(proxyReq,req,res,options)},response:config=>(proxyRes,req,res)=>{const id=req.__amiddyId__;if(id===res.__amiddyId__){proxyRecorder.saveResponse(proxyRes,config);const data=proxyRegistry.get(id);logger.response(data,proxyRes),proxyRegistry.clear(id);const responseHeaders=config.proxy.response.headers;Object.keys(responseHeaders).forEach(headerName=>{res.setHeader(headerName,responseHeaders[headerName])})}},error:(error,req,res)=>{"ECONNRESET"!==error.code&&logger.error(error.message,"proxy"),res.headersSent||res.writeHead(500),res.end(`Proxy error occurred: ${error.message}`)}};export default service;