itty-router
Advanced tools
Comparing version 5.0.16 to 5.0.17
@@ -1,2 +0,2 @@ | ||
"use strict";exports.cors=(e={})=>{const{origin:s="*",credentials:o=!1,allowMethods:r="*",allowHeaders:c,exposeHeaders:t,maxAge:a}=e,n=e=>{const r=e?.headers.get("origin");return!0===s?r:s instanceof RegExp?s.test(r)?r:void 0:Array.isArray(s)?s.includes(r)?r:void 0:s instanceof Function?s(r):"*"==s&&o?r:s},l=(e,s)=>{for(const[o,r]of Object.entries(s))r&&e.headers.append(o,r);return e};return{corsify:(e,s)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(e,{"access-control-allow-origin":n(s),"access-control-allow-credentials":o}),preflight:e=>{if("OPTIONS"==e.method){const s=new Response(null,{status:204});return l(s,{"access-control-allow-origin":n(e),"access-control-allow-methods":r?.join?.(",")??r,"access-control-expose-headers":t?.join?.(",")??t,"access-control-allow-headers":c?.join?.(",")??c??e.headers.get("access-control-request-headers"),"access-control-max-age":a,"access-control-allow-credentials":o})}}}}; | ||
"use strict";exports.cors=(e={})=>{const{origin:o="*",credentials:s=!1,allowMethods:r="*",allowHeaders:c,exposeHeaders:t,maxAge:n}=e,a=e=>{const r=e?.headers.get("origin");return!0===o?r:o instanceof RegExp?o.test(r)?r:void 0:Array.isArray(o)?o.includes(r)?r:void 0:o instanceof Function?o(r):"*"==o&&s?r:o},l=(e,o)=>{for(const[s,r]of Object.entries(o))r&&e.headers.append(s,r);return e};return{corsify:(e,o)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(e.clone(),{"access-control-allow-origin":a(o),"access-control-allow-credentials":s}),preflight:e=>{if("OPTIONS"==e.method){const o=new Response(null,{status:204});return l(o,{"access-control-allow-origin":a(e),"access-control-allow-methods":r?.join?.(",")??r,"access-control-expose-headers":t?.join?.(",")??t,"access-control-allow-headers":c?.join?.(",")??c??e.headers.get("access-control-request-headers"),"access-control-max-age":n,"access-control-allow-credentials":s})}}}}; | ||
//# sourceMappingURL=cors.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict";const e=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,a)=>(r,...n)=>t.push([o.toUpperCase?.(),RegExp(`^${(a=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...r,async fetch(e,...o){let s,a,n=new URL(e.url),c=e.query={__proto__:null};for(let[e,t]of n.searchParams)c[e]=c[e]?[].concat(c[e],t):t;e:try{for(let t of r.before||[])if(null!=(s=await t(e.proxy??e,...o)))break e;t:for(let[r,c,l,p]of t)if((r==e.method||"ALL"==r)&&(a=n.pathname.match(c))){e.params=a.groups||{},e.route=p;for(let t of l)if(null!=(s=await t(e.proxy??e,...o)))break t}}catch(t){if(!r.catch)throw t;s=await r.catch(t,e.proxy??e,...o)}try{for(let t of r.finally||[])s=await t(s,e.proxy??e,...o)??s}catch(t){if(!r.catch)throw t;s=await r.catch(t,e.proxy??e,...o)}return s}}),t=(e="text/plain; charset=utf-8",t)=>(r,o={})=>{if(void 0===r||r instanceof Response)return r;const s=new Response(t?.(r)??r,o.url?void 0:o);return s.headers.set("content-type",e),s},r=t("application/json; charset=utf-8",JSON.stringify),o=e=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[e]||"Unknown Error"),s=(e=500,t)=>{if(e instanceof Error){const{message:r,...s}=e;e=e.status||500,t={error:r||o(e),...s}}return t={status:e,..."object"==typeof t?t:{error:t||o(e)}},r(t,{status:e})},a=e=>{e.proxy=new Proxy(e.proxy??e,{get:(t,r)=>t[r]?.bind?.(e)??t[r]??t?.params?.[r]})};class n extends Error{status;constructor(e=500,t){super("object"==typeof t?t.error:t),"object"==typeof t&&Object.assign(this,t),this.status=e}}const c=t("text/plain; charset=utf-8",String),l=t("text/html"),p=t("image/jpeg"),i=t("image/png"),u=t("image/webp");exports.AutoRouter=({format:t=r,missing:o=(()=>s(404)),finally:n=[],before:c=[],...l}={})=>e({before:[a,...c],catch:s,finally:[(e,...t)=>e??o(e,...t),t,...n],...l}),exports.IttyRouter=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,a)=>(r,...n)=>t.push([o.toUpperCase(),RegExp(`^${(a=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...r,async fetch(e,...r){let o,s,a=new URL(e.url),n=e.query={__proto__:null};for(let[e,t]of a.searchParams)n[e]=n[e]?[].concat(n[e],t):t;for(let[n,c,l,p]of t)if((n==e.method||"ALL"==n)&&(s=a.pathname.match(c))){e.params=s.groups||{},e.route=p;for(let t of l)if(null!=(o=await t(e.proxy??e,...r)))return o}}}),exports.Router=e,exports.StatusError=n,exports.cors=(e={})=>{const{origin:t="*",credentials:r=!1,allowMethods:o="*",allowHeaders:s,exposeHeaders:a,maxAge:n}=e,c=e=>{const o=e?.headers.get("origin");return!0===t?o:t instanceof RegExp?t.test(o)?o:void 0:Array.isArray(t)?t.includes(o)?o:void 0:t instanceof Function?t(o):"*"==t&&r?o:t},l=(e,t)=>{for(const[r,o]of Object.entries(t))o&&e.headers.append(r,o);return e};return{corsify:(e,t)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(e,{"access-control-allow-origin":c(t),"access-control-allow-credentials":r}),preflight:e=>{if("OPTIONS"==e.method){const t=new Response(null,{status:204});return l(t,{"access-control-allow-origin":c(e),"access-control-allow-methods":o?.join?.(",")??o,"access-control-expose-headers":a?.join?.(",")??a,"access-control-allow-headers":s?.join?.(",")??s??e.headers.get("access-control-request-headers"),"access-control-max-age":n,"access-control-allow-credentials":r})}}}},exports.createResponse=t,exports.error=s,exports.html=l,exports.jpeg=p,exports.json=r,exports.png=i,exports.status=(e,t)=>new Response(null,{...t,status:e}),exports.text=c,exports.webp=u,exports.withContent=async e=>{e.content=e.body?await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text())):void 0},exports.withCookies=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,r])=>r?(e[t]=r,e):e),{})},exports.withParams=a; | ||
"use strict";const e=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,a)=>(r,...n)=>t.push([o.toUpperCase?.(),RegExp(`^${(a=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...r,async fetch(e,...o){let s,a,n=new URL(e.url),c=e.query={__proto__:null};for(let[e,t]of n.searchParams)c[e]=c[e]?[].concat(c[e],t):t;e:try{for(let t of r.before||[])if(null!=(s=await t(e.proxy??e,...o)))break e;t:for(let[r,c,l,p]of t)if((r==e.method||"ALL"==r)&&(a=n.pathname.match(c))){e.params=a.groups||{},e.route=p;for(let t of l)if(null!=(s=await t(e.proxy??e,...o)))break t}}catch(t){if(!r.catch)throw t;s=await r.catch(t,e.proxy??e,...o)}try{for(let t of r.finally||[])s=await t(s,e.proxy??e,...o)??s}catch(t){if(!r.catch)throw t;s=await r.catch(t,e.proxy??e,...o)}return s}}),t=(e="text/plain; charset=utf-8",t)=>(r,o={})=>{if(void 0===r||r instanceof Response)return r;const s=new Response(t?.(r)??r,o.url?void 0:o);return s.headers.set("content-type",e),s},r=t("application/json; charset=utf-8",JSON.stringify),o=e=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[e]||"Unknown Error"),s=(e=500,t)=>{if(e instanceof Error){const{message:r,...s}=e;e=e.status||500,t={error:r||o(e),...s}}return t={status:e,..."object"==typeof t?t:{error:t||o(e)}},r(t,{status:e})},a=e=>{e.proxy=new Proxy(e.proxy??e,{get:(t,r)=>t[r]?.bind?.(e)??t[r]??t?.params?.[r]})};class n extends Error{status;constructor(e=500,t){super("object"==typeof t?t.error:t),"object"==typeof t&&Object.assign(this,t),this.status=e}}const c=t("text/plain; charset=utf-8",String),l=t("text/html"),p=t("image/jpeg"),i=t("image/png"),u=t("image/webp");exports.AutoRouter=({format:t=r,missing:o=(()=>s(404)),finally:n=[],before:c=[],...l}={})=>e({before:[a,...c],catch:s,finally:[(e,...t)=>e??o(e,...t),t,...n],...l}),exports.IttyRouter=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,a)=>(r,...n)=>t.push([o.toUpperCase(),RegExp(`^${(a=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...r,async fetch(e,...r){let o,s,a=new URL(e.url),n=e.query={__proto__:null};for(let[e,t]of a.searchParams)n[e]=n[e]?[].concat(n[e],t):t;for(let[n,c,l,p]of t)if((n==e.method||"ALL"==n)&&(s=a.pathname.match(c))){e.params=s.groups||{},e.route=p;for(let t of l)if(null!=(o=await t(e.proxy??e,...r)))return o}}}),exports.Router=e,exports.StatusError=n,exports.cors=(e={})=>{const{origin:t="*",credentials:r=!1,allowMethods:o="*",allowHeaders:s,exposeHeaders:a,maxAge:n}=e,c=e=>{const o=e?.headers.get("origin");return!0===t?o:t instanceof RegExp?t.test(o)?o:void 0:Array.isArray(t)?t.includes(o)?o:void 0:t instanceof Function?t(o):"*"==t&&r?o:t},l=(e,t)=>{for(const[r,o]of Object.entries(t))o&&e.headers.append(r,o);return e};return{corsify:(e,t)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(e.clone(),{"access-control-allow-origin":c(t),"access-control-allow-credentials":r}),preflight:e=>{if("OPTIONS"==e.method){const t=new Response(null,{status:204});return l(t,{"access-control-allow-origin":c(e),"access-control-allow-methods":o?.join?.(",")??o,"access-control-expose-headers":a?.join?.(",")??a,"access-control-allow-headers":s?.join?.(",")??s??e.headers.get("access-control-request-headers"),"access-control-max-age":n,"access-control-allow-credentials":r})}}}},exports.createResponse=t,exports.error=s,exports.html=l,exports.jpeg=p,exports.json=r,exports.png=i,exports.status=(e,t)=>new Response(null,{...t,status:e}),exports.text=c,exports.webp=u,exports.withContent=async e=>{e.content=e.body?await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text())):void 0},exports.withCookies=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,r])=>r?(e[t]=r,e):e),{})},exports.withParams=a; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "itty-router", | ||
"version": "5.0.16", | ||
"version": "5.0.17", | ||
"description": "A tiny, zero-dependency router, designed to make beautiful APIs in any environment.", | ||
@@ -5,0 +5,0 @@ "main": "./index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
83738