@nodifier/http-mock
Version:
A node module to mock http/https requests made for unit testing etc.
3 lines (2 loc) • 2.1 kB
JavaScript
;var H=Object.create;var i=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var P=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})},A=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of h(t))!O.call(e,c)&&c!==r&&i(e,c,{get:()=>t[c],enumerable:!(s=N(t,c))||s.enumerable});return e};var f=(e,t,r)=>(r=e!=null?H(D(e)):{},A(t||!e||!e.__esModule?i(r,"default",{value:e,enumerable:!0}):r,e)),M=e=>A(i({},"__esModule",{value:!0}),e);var F={};P(F,{del:()=>k,done:()=>l,get:()=>E,justMock:()=>j,post:()=>S,put:()=>C,response:()=>v});module.exports=M(F);var u=f(require("node:http")),x=f(require("node:net")),B=f(require("node:zlib")),z,p,U,y,n,m=3e3,o,b=new u.Agent({keepAlive:!0});b.createConnection=(e,t)=>{e.host="127.0.0.1",e.port=3e3;let r=new x.default.Socket;return r.connect(e.port,e.hostname,()=>{t(null,r)}),r};u.default.globalAgent=b;var j=e=>(o=(0,u.createServer)((t,r)=>{let{headers:s}=t;if((s["accept-encoding"]??s["Accept-Encoding"])?.includes("gzip")){let d=B.default.createGzip();r.setHeader("Content-Encoding","gzip"),r.setHeader("Content-Type","application/json"),r.writeHead(p,"",s),d.pipe(r),d.end(y)}else r.statusCode=p,r.end(JSON.stringify(y));let g=Buffer.alloc(0);t.on("data",d=>{g=Buffer.concat([g,d])}),t.on("end",()=>{z=Buffer.from(g).toString("utf-8")})}),n=x.default.createConnection({port:m},()=>{n.end()}),n.on("error",t=>{t.message.includes("ECONNREFUSED")&&o.close(()=>{o.listen(m,()=>{n.end()})}),n.destroy()}),o.on("error",t=>{t.message.includes("EADDRINUSE")&&o.close(()=>{o.listen(m,()=>{n.end()})})}),{...a(),post:S,put:C,get:E,del:k,done:l}),S=e=>(p=e,{...a()}),C=e=>(p=e,{...a()}),E=e=>(p=e,{...a()}),k=e=>(p=e,{...a()}),v=(e,t)=>(y=e,t&&(U=t),{done:l,getRequestPayload:w}),l=()=>{console.log("Closing proxy server and network socket..."),o.close(),b.destroy(),n.end(),n.destroy()},w=()=>z,a=()=>({response:v,getRequestPayload:w});0&&(module.exports={del,done,get,justMock,post,put,response});
//# sourceMappingURL=index.js.map