UNPKG

@micahjonas/switchboard

Version:

Switchboard, a small fetch api router useful for cloudflare workers. Based on Trouter.

3 lines (2 loc) 1.02 kB
import t from"trouter";export default class extends t{constructor(t={}){super(t)}async handleRequest(t){const r=new URL(t.url),{handlers:n,params:a}=this.find(t.method,r.pathname);try{var s,o=!0,l=!1;try{for(var i,u,c=function(t){var e;if("undefined"!=typeof Symbol){if(Symbol.asyncIterator&&null!=(e=t[Symbol.asyncIterator]))return e.call(t);if(Symbol.iterator&&null!=(e=t[Symbol.iterator]))return e.call(t)}throw new TypeError("Object is not async iterable")}(n);o=(i=await c.next()).done,u=await i.value,!o;o=!0){const e=u,r=await e(t,a);if(r&&r instanceof Response)return r}}catch(t){l=!0,s=t}finally{try{o||null==c.return||await c.return()}finally{if(l)throw s}}return new Response(JSON.stringify(e,null," "),{status:400,statusText:"No response generated"})}catch(t){return new Response(JSON.stringify(t,null," "),{status:500,statusText:"Worker failed"})}}sendJsonResponse(t){return new Response(JSON.stringify(t),{headers:{"content-type":"text/html;charset=UTF-8"}})}} //# sourceMappingURL=switchboard.modern.js.map