UNPKG

@prisma/dev

Version:

A local Prisma Postgres server for development and testing

2 lines (1 loc) 1.47 kB
import{a as c}from"./chunk-ANHBRJRZ.js";import{h as d}from"./chunk-EDFHV3AK.js";import{c as l,d as f}from"./chunk-DOJAPHLY.js";import{createServer as m}from"http";import{promisify as u}from"util";function A(r,e){return async function(o,n,i){let t=e?Date.now():0;e&&n.once("finish",()=>{let a=Date.now()-t;console.log("[Accelerate]",`<-- ${o.method??"?"} ${o.url??""} ${n.statusCode} ${a}ms`)});try{await r(o,n,i)}catch(a){try{y(a,n,o,e)}catch(p){e&&console.error("[Accelerate]","error while handling handler error",p),n.destroyed||n.destroy()}}}}function y(r,e,s,o){if(e.destroyed||e.headersSent||e.writableEnded){o&&console.error("[Accelerate]",`error after response was no longer writable for ${s.method??"?"} ${s.url??""}`,r),e.destroy();return}if(r instanceof c){f(e,r);return}console.error("[Accelerate]",r);try{l(e,500)}catch(n){o&&console.error("[Accelerate]","failed to write 500 response (client likely disconnected)",n),e.destroy()}}function E(r){let{router:e}=r;return{async listen(s){let o=m((t,a)=>{e.lookup(t,a)}),i=(await T(o,s)).port;return o.on("error",t=>{console.error("[Accelerate]",t)}),{async close(){await u(o.close.bind(o))()},port:i,url:`http://localhost:${i}`}}}}function T(r,e){return new Promise((s,o)=>{let n=t=>{if(r.off("listening",i),typeof t=="object"&&t!==null&&"code"in t&&t.code==="EADDRINUSE"){o(new d(e));return}o(t)},i=()=>{r.off("error",n),s(r.address())};r.once("error",n),r.once("listening",i),r.listen(e)})}export{A as a,E as b};