itty-router 4.3.0-next.1 → 4.3.0-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AutoRouter.d.ts +1 -1
- package/AutoRouter.js +1 -1
- package/AutoRouter.js.map +1 -1
- package/AutoRouter.mjs +1 -1
- package/AutoRouter.mjs.map +1 -1
- package/IttyRouter.d.ts +16 -18
- package/IttyRouter.js +1 -1
- package/IttyRouter.js.map +1 -1
- package/IttyRouter.mjs +1 -1
- package/IttyRouter.mjs.map +1 -1
- package/README.md +8 -1
- package/Router.d.ts +2 -2
- package/Router.js +1 -1
- package/Router.js.map +1 -1
- package/Router.mjs +1 -1
- package/Router.mjs.map +1 -1
- package/cors.d.ts +12 -0
- package/cors.js +2 -0
- package/cors.js.map +1 -0
- package/cors.mjs +2 -0
- package/cors.mjs.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/index.mjs +1 -1
- package/index.mjs.map +1 -1
- package/package.json +5 -5
- package/withContent.js +1 -1
- package/withContent.js.map +1 -1
- package/withContent.mjs +1 -1
- package/withContent.mjs.map +1 -1
- package/createCors.d.ts +0 -11
- package/createCors.js +0 -2
- package/createCors.js.map +0 -1
- package/createCors.mjs +0 -2
- package/createCors.mjs.map +0 -1
package/AutoRouter.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ type AutoRouterOptions = {
|
|
|
4
4
|
missing?: RouteHandler;
|
|
5
5
|
format?: ResponseHandler;
|
|
6
6
|
} & RouterOptions;
|
|
7
|
-
export declare const AutoRouter: ({ format, missing, finally: f, before, ...options }?: AutoRouterOptions) => import("./Router").RouterType<import("IttyRouter").
|
|
7
|
+
export declare const AutoRouter: ({ format, missing, finally: f, before, ...options }?: AutoRouterOptions) => import("./Router").RouterType<import("IttyRouter").IRequest, any[]>;
|
|
8
8
|
export {};
|
package/AutoRouter.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const r=((r="text/plain; charset=utf-8",e)=>(t,{...o}={})=>{if(void 0===t||t instanceof Response)return t;const a=new Response(e?.(t)??t,o);return a.headers.set("content-type",r),a})("application/json; charset=utf-8",JSON.stringify),e=r=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[r]||"Unknown Error"),t=(t=500,o)=>{if(t instanceof Error){const{message:r,...a}=t;t=t.status||500,o={error:r||e(t),...a}}return o={status:t,..."object"==typeof o?o:{error:o||e(t)}},r(o,{status:t})},o=r=>{r.proxy=new Proxy(r.proxy||r,{get:(e,t)=>void 0!==e[t]?e[t].bind?.(r)||e[t]:e?.params?.[t]})};exports.AutoRouter=({format:e=r,missing:a=(()=>t(404)),finally:n=[],before:s=[],...c}={})=>(({base:r="",routes:e=[],...t}={})=>({__proto__:new Proxy({},{get:(t,o,a,n)=>(t,...s)=>e.push([o.toUpperCase?.(),RegExp(`^${(n=(r+t).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),s,n])&&a}),routes:e,...t,async fetch(r,...o){let a,n,s=new URL(r.url),c=r.query={__proto__:null};for(let[r,e]of s.searchParams)c[r]=c[r]?[].concat(c[r],e):e;r:try{for(let e of t.before||[])if(null!=(a=await e(r.proxy??r,...o)))break r;e:for(let[t,c,f,i]of e)if((t==r.method||"ALL"==t)&&(n=s.pathname.match(c))){r.params=n.groups||{},r.route=i;for(let e of f)if(null!=(a=await e(r.proxy??r,...o)))break e}}catch(e){if(!t.catch)throw e;a=await t.catch(e,r.proxy??r,...o)}try{for(let e of t.finally||[])a=await e(a,r.proxy??r,...o)??a}catch(e){if(!t.catch)throw e;a=await t.catch(e,r.proxy??r,...o)}return a}}))({before:[o,...s],catch:t,finally:[(r,...e)=>r??a(r,...e),e,...n],...c});
|
|
2
2
|
//# sourceMappingURL=AutoRouter.js.map
|
package/AutoRouter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoRouter.js","sources":["../src/src/Router.ts","../src/src/json.ts","../src/src/createResponse.ts","../src/src/error.ts","../src/src/withParams.ts","../src/src/AutoRouter.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["json","format","transform","body","options","undefined","Response","response","headers","set","createResponse","JSON","stringify","getMessage","code","error","a","b","Error","message","err","status","withParams","request","proxy","Proxy","get","obj","prop","bind","params","missing","finally","f","before","base","routes","other","__proto__","target","receiver","path","
|
|
1
|
+
{"version":3,"file":"AutoRouter.js","sources":["../src/src/Router.ts","../src/src/json.ts","../src/src/createResponse.ts","../src/src/error.ts","../src/src/withParams.ts","../src/src/AutoRouter.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["json","format","transform","body","options","undefined","Response","response","headers","set","createResponse","JSON","stringify","getMessage","code","error","a","b","Error","message","err","status","withParams","request","proxy","Proxy","get","obj","prop","bind","params","missing","finally","f","before","base","routes","other","__proto__","target","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","args","match","url","URL","query","k","v","searchParams","concat","t","handler","outer","method","regex","pathname","groups","catch","Router","r"],"mappings":"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"}
|
package/AutoRouter.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const r=((r="text/plain; charset=utf-8",e)=>(t,{...o}={})=>{if(void 0===t||t instanceof Response)return t;const a=new Response(e?.(t)??t,o);return a.headers.set("content-type",r),a})("application/json; charset=utf-8",JSON.stringify),e=r=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[r]||"Unknown Error"),t=(t=500,o)=>{if(t instanceof Error){const{message:r,...a}=t;t=t.status||500,o={error:r||e(t),...a}}return o={status:t,..."object"==typeof o?o:{error:o||e(t)}},r(o,{status:t})},o=r=>{r.proxy=new Proxy(r.proxy||r,{get:(e,t)=>void 0!==e[t]?e[t].bind?.(r)||e[t]:e?.params?.[t]})},a=({format:e=r,missing:a=(()=>t(404)),finally:n=[],before:s=[],...c}={})=>(({base:r="",routes:e=[],...t}={})=>({__proto__:new Proxy({},{get:(t,o,a,n)=>(t,...s)=>e.push([o.toUpperCase?.(),RegExp(`^${(n=(r+t).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),s,n])&&a}),routes:e,...t,async fetch(r,...o){let a,n,s=new URL(r.url),c=r.query={__proto__:null};for(let[r,e]of s.searchParams)c[r]=c[r]?[].concat(c[r],e):e;r:try{for(let e of t.before||[])if(null!=(a=await e(r.proxy??r,...o)))break r;e:for(let[t,c,f,p]of e)if((t==r.method||"ALL"==t)&&(n=s.pathname.match(c))){r.params=n.groups||{},r.route=p;for(let e of f)if(null!=(a=await e(r.proxy??r,...o)))break e}}catch(e){if(!t.catch)throw e;a=await t.catch(e,r.proxy??r,...o)}try{for(let e of t.finally||[])a=await e(a,r.proxy??r,...o)??a}catch(e){if(!t.catch)throw e;a=await t.catch(e,r.proxy??r,...o)}return a}}))({before:[o,...s],catch:t,finally:[(r,...e)=>r??a(r,...e),e,...n],...c});export{a as AutoRouter};
|
|
2
2
|
//# sourceMappingURL=AutoRouter.mjs.map
|
package/AutoRouter.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoRouter.mjs","sources":["../src/src/Router.ts","../src/src/json.ts","../src/src/createResponse.ts","../src/src/error.ts","../src/src/withParams.ts","../src/src/AutoRouter.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["json","format","transform","body","options","undefined","Response","response","headers","set","createResponse","JSON","stringify","getMessage","code","error","a","b","Error","message","err","status","withParams","request","proxy","Proxy","get","obj","prop","bind","params","AutoRouter","missing","finally","f","before","base","routes","other","__proto__","target","receiver","path","
|
|
1
|
+
{"version":3,"file":"AutoRouter.mjs","sources":["../src/src/Router.ts","../src/src/json.ts","../src/src/createResponse.ts","../src/src/error.ts","../src/src/withParams.ts","../src/src/AutoRouter.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["json","format","transform","body","options","undefined","Response","response","headers","set","createResponse","JSON","stringify","getMessage","code","error","a","b","Error","message","err","status","withParams","request","proxy","Proxy","get","obj","prop","bind","params","AutoRouter","missing","finally","f","before","base","routes","other","__proto__","target","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","args","match","url","URL","query","k","v","searchParams","concat","t","handler","outer","method","regex","pathname","groups","catch","Router","r"],"mappings":"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"}
|
package/IttyRouter.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
export type GenericTraps =
|
|
2
|
-
[key: string]: any;
|
|
3
|
-
};
|
|
1
|
+
export type GenericTraps = Record<string, any>;
|
|
4
2
|
export type RequestLike = {
|
|
5
3
|
method: string;
|
|
6
4
|
url: string;
|
|
@@ -22,8 +20,8 @@ export type IttyRouterOptions = {
|
|
|
22
20
|
base?: string;
|
|
23
21
|
routes?: RouteEntry[];
|
|
24
22
|
} & Record<string, any>;
|
|
25
|
-
export type RouteHandler<
|
|
26
|
-
(request:
|
|
23
|
+
export type RouteHandler<R = IRequest, Args extends Array<any> = any[]> = {
|
|
24
|
+
(request: R, ...args: Args): any;
|
|
27
25
|
};
|
|
28
26
|
export type RouteEntry = [
|
|
29
27
|
httpMethod: string,
|
|
@@ -31,23 +29,23 @@ export type RouteEntry = [
|
|
|
31
29
|
handlers: RouteHandler[],
|
|
32
30
|
path?: string
|
|
33
31
|
];
|
|
34
|
-
export type Route
|
|
32
|
+
export type Route<R = IRequest, A extends Array<any> = any[]> = <RequestType = R, Args extends Array<any> = A>(path: string, ...handlers: RouteHandler<RequestType, Args>[]) => IttyRouterType<RequestType, Args>;
|
|
35
33
|
export type UniversalRoute<RequestType = IRequest, Args extends any[] = any[]> = (path: string, ...handlers: RouteHandler<RequestType, Args>[]) => IttyRouterType<UniversalRoute<RequestType, Args>, Args>;
|
|
36
34
|
export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
|
|
37
35
|
export type CustomRoutes<R = Route> = {
|
|
38
36
|
[key: string]: R;
|
|
39
37
|
};
|
|
40
|
-
export type IttyRouterType<R =
|
|
38
|
+
export type IttyRouterType<R = IRequest, A extends any[] = any[], Output = any> = {
|
|
41
39
|
__proto__: IttyRouterType<R>;
|
|
42
40
|
routes: RouteEntry[];
|
|
43
|
-
fetch: <
|
|
44
|
-
all: R
|
|
45
|
-
delete: R
|
|
46
|
-
get: R
|
|
47
|
-
head: R
|
|
48
|
-
options: R
|
|
49
|
-
patch: R
|
|
50
|
-
post: R
|
|
51
|
-
put: R
|
|
52
|
-
} & CustomRoutes<R
|
|
53
|
-
export declare const IttyRouter: <RequestType = IRequest, Args extends any[] = any[]
|
|
41
|
+
fetch: <Args extends any[] = A>(request: RequestLike, ...extra: Args) => Promise<Output>;
|
|
42
|
+
all: Route<R, A>;
|
|
43
|
+
delete: Route<R, A>;
|
|
44
|
+
get: Route<R, A>;
|
|
45
|
+
head: Route<R, A>;
|
|
46
|
+
options: Route<R, A>;
|
|
47
|
+
patch: Route<R, A>;
|
|
48
|
+
post: Route<R, A>;
|
|
49
|
+
put: Route<R, A>;
|
|
50
|
+
} & CustomRoutes<Route<R, A>>;
|
|
51
|
+
export declare const IttyRouter: <RequestType = IRequest, Args extends any[] = any[]>({ base, routes, ...other }?: IttyRouterOptions) => IttyRouterType<RequestType, Args>;
|
package/IttyRouter.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.IttyRouter=({base:e="",routes:r=[],...t}={})=>({__proto__:new Proxy({},{get:(t,o,a,p)=>(t,...l)=>r.push([o.toUpperCase
|
|
1
|
+
"use strict";exports.IttyRouter=({base:e="",routes:r=[],...t}={})=>({__proto__:new Proxy({},{get:(t,o,a,p)=>(t,...l)=>r.push([o.toUpperCase(),RegExp(`^${(p=(e+t).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),l,p])&&a}),routes:r,...t,async fetch(e,...t){let o,a,p=new URL(e.url),l=e.query={__proto__:null};for(let[e,r]of p.searchParams)l[e]=l[e]?[].concat(l[e],r):r;for(let[l,s,c,u]of r)if((l==e.method||"ALL"==l)&&(a=p.pathname.match(s))){e.params=a.groups||{},e.route=u;for(let r of c)if(null!=(o=await r(e.proxy??e,...t)))return o}}});
|
|
2
2
|
//# sourceMappingURL=IttyRouter.js.map
|
package/IttyRouter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IttyRouter.js","sources":["../src/src/IttyRouter.ts"],"sourcesContent":[null],"names":["base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","method","regex","pathname","params","groups","handler","proxy"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IttyRouter.js","sources":["../src/src/IttyRouter.ts"],"sourcesContent":[null],"names":["base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","method","regex","pathname","params","groups","handler","proxy"],"mappings":"gCAwE0B,EAGtBA,OAAO,GAAIC,SAAS,MAAOC,GAA6B,MACzD,CACCC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAkBC,IACjD,CAACC,KAAkBC,IACjBV,EAAOW,KACL,CACEL,EAAKM,cACLC,OAAO,KAAKL,GAAQT,EAAOU,GACxBK,QAAQ,aAAc,OACtBA,QAAQ,oBAAqB,gBAC7BA,QAAQ,kBAAmB,uBAC3BA,QAAQ,MAAO,OACfA,QAAQ,WAAY,iBAGvBJ,EACAF,KAECD,IAEXP,YACGC,EACHc,YAAaC,KAAyBC,GACpC,IAAIC,EACAC,EACAC,EAAM,IAAIC,IAAIL,EAAQI,KACtBE,EAA6BN,EAAQM,MAAQ,CAAEpB,UAAW,MAG9D,IAAK,IAAKqB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAG/D,IAAK,IAAKG,EAAQC,EAAOlB,EAAUF,KAASR,EAC1C,IAAK2B,GAAUX,EAAQW,QAAoB,OAAVA,KAAqBR,EAAQC,EAAIS,SAASV,MAAMS,IAAS,CACxFZ,EAAQc,OAASX,EAAMY,QAAU,CAAA,EACjCf,EAAQP,MAAQD,EAChB,IAAK,IAAIwB,KAAWtB,EAClB,GAAqE,OAAhEQ,QAAiBc,EAAQhB,EAAQiB,OAASjB,KAAYC,IAAgB,OAAOC,CACrF,CACJ"}
|
package/IttyRouter.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=({base:e="",routes:r=[],...o}={})=>({__proto__:new Proxy({},{get:(o,t,a,p)=>(o,...l)=>r.push([t.toUpperCase
|
|
1
|
+
const e=({base:e="",routes:r=[],...o}={})=>({__proto__:new Proxy({},{get:(o,t,a,p)=>(o,...l)=>r.push([t.toUpperCase(),RegExp(`^${(p=(e+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),l,p])&&a}),routes:r,...o,async fetch(e,...o){let t,a,p=new URL(e.url),l=e.query={__proto__:null};for(let[e,r]of p.searchParams)l[e]=l[e]?[].concat(l[e],r):r;for(let[l,c,s,u]of r)if((l==e.method||"ALL"==l)&&(a=p.pathname.match(c))){e.params=a.groups||{},e.route=u;for(let r of s)if(null!=(t=await r(e.proxy??e,...o)))return t}}});export{e as IttyRouter};
|
|
2
2
|
//# sourceMappingURL=IttyRouter.mjs.map
|
package/IttyRouter.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IttyRouter.mjs","sources":["../src/src/IttyRouter.ts"],"sourcesContent":[null],"names":["IttyRouter","base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","method","regex","pathname","params","groups","handler","proxy"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IttyRouter.mjs","sources":["../src/src/IttyRouter.ts"],"sourcesContent":[null],"names":["IttyRouter","base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","method","regex","pathname","params","groups","handler","proxy"],"mappings":"MAwEaA,EAAa,EAGtBC,OAAO,GAAIC,SAAS,MAAOC,GAA6B,MACzD,CACCC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAkBC,IACjD,CAACC,KAAkBC,IACjBV,EAAOW,KACL,CACEL,EAAKM,cACLC,OAAO,KAAKL,GAAQT,EAAOU,GACxBK,QAAQ,aAAc,OACtBA,QAAQ,oBAAqB,gBAC7BA,QAAQ,kBAAmB,uBAC3BA,QAAQ,MAAO,OACfA,QAAQ,WAAY,iBAGvBJ,EACAF,KAECD,IAEXP,YACGC,EACHc,YAAaC,KAAyBC,GACpC,IAAIC,EACAC,EACAC,EAAM,IAAIC,IAAIL,EAAQI,KACtBE,EAA6BN,EAAQM,MAAQ,CAAEpB,UAAW,MAG9D,IAAK,IAAKqB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAG/D,IAAK,IAAKG,EAAQC,EAAOlB,EAAUF,KAASR,EAC1C,IAAK2B,GAAUX,EAAQW,QAAoB,OAAVA,KAAqBR,EAAQC,EAAIS,SAASV,MAAMS,IAAS,CACxFZ,EAAQc,OAASX,EAAMY,QAAU,CAAA,EACjCf,EAAQP,MAAQD,EAChB,IAAK,IAAIwB,KAAWtB,EAClB,GAAqE,OAAhEQ,QAAiBc,EAAQhB,EAAQiB,OAASjB,KAAYC,IAAgB,OAAOC,CACrF,CACJ"}
|
package/README.md
CHANGED
|
@@ -60,11 +60,15 @@ An ultra-tiny API microrouter, for use when [size matters](https://github.com/Ti
|
|
|
60
60
|
```js
|
|
61
61
|
import { AutoRouter } from 'itty-router' // ~1kB
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
const router = AutoRouter()
|
|
64
|
+
|
|
65
|
+
router
|
|
64
66
|
.get('/hello/:name', ({ name }) => `Hello, ${name}!`)
|
|
65
67
|
.get('/json', () => [1,2,3])
|
|
66
68
|
.get('/promises', () => Promise.resolve('foo'))
|
|
67
69
|
|
|
70
|
+
export default router
|
|
71
|
+
|
|
68
72
|
// that's it ^-^
|
|
69
73
|
```
|
|
70
74
|
|
|
@@ -82,6 +86,9 @@ Join us on [Discord](https://discord.gg/53vyrZAu9u)!
|
|
|
82
86
|
|
|
83
87
|
These folks are the real heroes, making open source the powerhouse that it is! Help out and get your name added to this list! <3
|
|
84
88
|
|
|
89
|
+
#### Constant Feedback, Suggestions, Moral Support & Community Building
|
|
90
|
+
- TBD
|
|
91
|
+
|
|
85
92
|
#### Core Concepts
|
|
86
93
|
|
|
87
94
|
- [@mvasigh](https://github.com/mvasigh) - proxy hack wizard behind itty, coding partner in crime, maker of the entire doc site, etc, etc.
|
package/Router.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IRequest, IttyRouterOptions, IttyRouterType, Route, RouteHandler } from './IttyRouter';
|
|
2
2
|
export type ResponseHandler<ResponseType = any, RequestType = IRequest, Args extends any[] = any[]> = (response: ResponseType, request: RequestType, ...args: Args) => any;
|
|
3
3
|
export type ErrorHandler<ErrorType = Error, RequestType = IRequest, Args extends any[] = any[]> = (response: ErrorType, request: RequestType, ...args: Args) => any;
|
|
4
4
|
export type RouterType<R = Route, Args extends any[] = any[]> = {
|
|
@@ -11,4 +11,4 @@ export type RouterOptions = {
|
|
|
11
11
|
catch?: ErrorHandler;
|
|
12
12
|
finally?: ResponseHandler[];
|
|
13
13
|
} & IttyRouterOptions;
|
|
14
|
-
export declare const Router: <RequestType = IRequest, Args extends any[] = any[]
|
|
14
|
+
export declare const Router: <RequestType = IRequest, Args extends any[] = any[]>({ base, routes, ...other }?: RouterOptions) => RouterType<RequestType, Args>;
|
package/Router.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.Router=({base:
|
|
1
|
+
"use strict";exports.Router=({base:r="",routes:e=[],...t}={})=>({__proto__:new Proxy({},{get:(t,a,o,c)=>(t,...l)=>e.push([a.toUpperCase?.(),RegExp(`^${(c=(r+t).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),l,c])&&o}),routes:e,...t,async fetch(r,...a){let o,c,l=new URL(r.url),p=r.query={__proto__:null};for(let[r,e]of l.searchParams)p[r]=p[r]?[].concat(p[r],e):e;r:try{for(let e of t.before||[])if(null!=(o=await e(r.proxy??r,...a)))break r;e:for(let[t,p,f,h]of e)if((t==r.method||"ALL"==t)&&(c=l.pathname.match(p))){r.params=c.groups||{},r.route=h;for(let e of f)if(null!=(o=await e(r.proxy??r,...a)))break e}}catch(e){if(!t.catch)throw e;o=await t.catch(e,r.proxy??r,...a)}try{for(let e of t.finally||[])o=await e(o,r.proxy??r,...a)??o}catch(e){if(!t.catch)throw e;o=await t.catch(e,r.proxy??r,...a)}return o}});
|
|
2
2
|
//# sourceMappingURL=Router.js.map
|
package/Router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sources":["../src/src/Router.ts"],"sourcesContent":[null],"names":["base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","
|
|
1
|
+
{"version":3,"file":"Router.js","sources":["../src/src/Router.ts"],"sourcesContent":[null],"names":["base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","t","handler","before","proxy","outer","method","regex","pathname","params","groups","err","catch","finally"],"mappings":"4BA2BsB,EAGlBA,OAAO,GAAIC,SAAS,MAAOC,GAAyB,MACrD,CACCC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAkBC,IACjD,CAACC,KAAkBC,IACjBV,EAAOW,KACL,CACEL,EAAKM,gBACLC,OAAO,KAAKL,GAAQT,EAAOU,GACxBK,QAAQ,aAAc,OACtBA,QAAQ,oBAAqB,gBAC7BA,QAAQ,kBAAmB,uBAC3BA,QAAQ,MAAO,OACfA,QAAQ,WAAY,iBAGvBJ,EACAF,KAECD,IAEXP,YACGC,EACHc,YAAaC,KAAyBC,GACpC,IAAIC,EACAC,EACAC,EAAM,IAAIC,IAAIL,EAAQI,KACtBE,EAA6BN,EAAQM,MAAQ,CAAEpB,UAAW,MAG9D,IAAK,IAAKqB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAE/DG,EAAG,IACD,IAAK,IAAIC,KAAW3B,EAAM4B,QAAU,GAClC,GAAqE,OAAhEX,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMU,EAGnFI,EAAO,IAAK,IAAKC,EAAQC,EAAOvB,EAAUF,KAASR,EACjD,IAAKgC,GAAUhB,EAAQgB,QAAoB,OAAVA,KAAqBb,EAAQC,EAAIc,SAASf,MAAMc,IAAS,CACxFjB,EAAQmB,OAAShB,EAAMiB,QAAU,CAAA,EACjCpB,EAAQP,MAAQD,EAEhB,IAAK,IAAIoB,KAAWlB,EAClB,GAAqE,OAAhEQ,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMc,CACpF,CACJ,CAAC,MAAOM,GACP,IAAKpC,EAAMqC,MAAO,MAAMD,EACxBnB,QAAiBjB,EAAMqC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAChE,CAED,IACE,IAAK,IAAIW,KAAW3B,EAAMsC,SAAW,GACnCrB,QAAiBU,EAAQV,EAAUF,EAAQc,OAASd,KAAYC,IAASC,CAC5E,CAAC,MAAMmB,GACN,IAAKpC,EAAMqC,MAAO,MAAMD,EACtBnB,QAAiBjB,EAAMqC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAClE,CAED,OAAOC,CACR"}
|
package/Router.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const r=({base:r="",routes:e=[],...a}={})=>({__proto__:new Proxy({},{get:(a,t,o,c)=>(a,...l)=>e.push([t.toUpperCase?.(),RegExp(`^${(c=(r+a).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),l,c])&&o}),routes:e,...a,async fetch(r,...t){let o,c,l=new URL(r.url),p=r.query={__proto__:null};for(let[r,e]of l.searchParams)p[r]=p[r]?[].concat(p[r],e):e;r:try{for(let e of a.before||[])if(null!=(o=await e(r.proxy??r,...t)))break r;e:for(let[a,p,f,h]of e)if((a==r.method||"ALL"==a)&&(c=l.pathname.match(p))){r.params=c.groups||{},r.route=h;for(let e of f)if(null!=(o=await e(r.proxy??r,...t)))break e}}catch(e){if(!a.catch)throw e;o=await a.catch(e,r.proxy??r,...t)}try{for(let e of a.finally||[])o=await e(o,r.proxy??r,...t)??o}catch(e){if(!a.catch)throw e;o=await a.catch(e,r.proxy??r,...t)}return o}});export{r as Router};
|
|
2
2
|
//# sourceMappingURL=Router.mjs.map
|
package/Router.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.mjs","sources":["../src/src/Router.ts"],"sourcesContent":[null],"names":["Router","base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","
|
|
1
|
+
{"version":3,"file":"Router.mjs","sources":["../src/src/Router.ts"],"sourcesContent":[null],"names":["Router","base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","t","handler","before","proxy","outer","method","regex","pathname","params","groups","err","catch","finally"],"mappings":"MA2BaA,EAAS,EAGlBC,OAAO,GAAIC,SAAS,MAAOC,GAAyB,MACrD,CACCC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAkBC,IACjD,CAACC,KAAkBC,IACjBV,EAAOW,KACL,CACEL,EAAKM,gBACLC,OAAO,KAAKL,GAAQT,EAAOU,GACxBK,QAAQ,aAAc,OACtBA,QAAQ,oBAAqB,gBAC7BA,QAAQ,kBAAmB,uBAC3BA,QAAQ,MAAO,OACfA,QAAQ,WAAY,iBAGvBJ,EACAF,KAECD,IAEXP,YACGC,EACHc,YAAaC,KAAyBC,GACpC,IAAIC,EACAC,EACAC,EAAM,IAAIC,IAAIL,EAAQI,KACtBE,EAA6BN,EAAQM,MAAQ,CAAEpB,UAAW,MAG9D,IAAK,IAAKqB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAE/DG,EAAG,IACD,IAAK,IAAIC,KAAW3B,EAAM4B,QAAU,GAClC,GAAqE,OAAhEX,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMU,EAGnFI,EAAO,IAAK,IAAKC,EAAQC,EAAOvB,EAAUF,KAASR,EACjD,IAAKgC,GAAUhB,EAAQgB,QAAoB,OAAVA,KAAqBb,EAAQC,EAAIc,SAASf,MAAMc,IAAS,CACxFjB,EAAQmB,OAAShB,EAAMiB,QAAU,CAAA,EACjCpB,EAAQP,MAAQD,EAEhB,IAAK,IAAIoB,KAAWlB,EAClB,GAAqE,OAAhEQ,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMc,CACpF,CACJ,CAAC,MAAOM,GACP,IAAKpC,EAAMqC,MAAO,MAAMD,EACxBnB,QAAiBjB,EAAMqC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAChE,CAED,IACE,IAAK,IAAIW,KAAW3B,EAAMsC,SAAW,GACnCrB,QAAiBU,EAAQV,EAAUF,EAAQc,OAASd,KAAYC,IAASC,CAC5E,CAAC,MAAMmB,GACN,IAAKpC,EAAMqC,MAAO,MAAMD,EACtBnB,QAAiBjB,EAAMqC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAClE,CAED,OAAOC,CACR"}
|
package/cors.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type CorsOptions = {
|
|
2
|
+
credentials?: true;
|
|
3
|
+
origin?: boolean | string | string[] | RegExp | ((origin: string) => string | void);
|
|
4
|
+
maxAge?: number;
|
|
5
|
+
allowMethods?: string | string[];
|
|
6
|
+
allowHeaders?: any;
|
|
7
|
+
exposeHeaders?: string | string[];
|
|
8
|
+
};
|
|
9
|
+
export declare const cors: (options?: CorsOptions) => {
|
|
10
|
+
corsify: (response: Response, request?: Request) => Response;
|
|
11
|
+
preflight: (request: Request) => Response | undefined;
|
|
12
|
+
};
|
package/cors.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";exports.cors=(e={})=>{const{origin:s="*",credentials:o=!1,allowMethods:r="*",allowHeaders:c,exposeHeaders:n,maxAge:t}=e,a={"access-control-allow-headers":c?.join?.(",")??c,"access-control-expose-headers":n?.join?.(",")??n,"access-control-allow-methods":r?.join?.(",")??r,"access-control-max-age":t,"access-control-allow-credentials":o},l=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};return{corsify:(e,s)=>e?.headers?.get("access-control-allow-origin")?e:new Response(e.body,{...e,headers:[...e.headers,["access-control-allow-origin",l(s)],...Object.entries(a)].filter((e=>e[1]))}),preflight:e=>{if("OPTIONS"==e.method)return new Response(null,{status:204,headers:Object.entries({"access-control-allow-origin":l(e),...a}).filter((e=>e[1]))})}}};
|
|
2
|
+
//# sourceMappingURL=cors.js.map
|
package/cors.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.js","sources":["../src/src/cors.ts"],"sourcesContent":[null],"names":["options","origin","credentials","allowMethods","allowHeaders","exposeHeaders","maxAge","corsHeaders","join","getAccessControlOrigin","request","requestOrigin","headers","get","RegExp","test","undefined","Array","isArray","includes","Function","corsify","response","Response","body","Object","entries","filter","v","preflight","method","status"],"mappings":"0BAUoB,CAACA,EAAuB,MAE1C,MAAMC,OACJA,EAAS,IAAGC,YACZA,GAAc,EAAKC,aACnBA,EAAe,IAAGC,aAClBA,EAAYC,cACZA,EAAaC,OACbA,GACEN,EAGEO,EAAmC,CACvC,+BAAgCH,GAAcI,OAAO,MAAQJ,EAE7D,gCAAiCC,GAAeG,OAAO,MAAQH,EAE/D,+BAAgCF,GAAcK,OAAO,MAAQL,EAC7D,yBAA0BG,EAC1B,mCAAoCJ,GAGhCO,EAA0BC,IAC9B,MAAMC,EAAgBD,GAASE,QAAQC,IAAI,UAG3C,OAAe,IAAXZ,EAAwBU,EAExBV,aAAkBa,OAAeb,EAAOc,KAAKJ,GAAiBA,OAAgBK,EAE9EC,MAAMC,QAAQjB,GAAgBA,EAAOkB,SAASR,GAAiBA,OAAgBK,EAE/Ef,aAAkBmB,SAAiBnB,EAAOU,GAG7B,KAAVV,GAAiBC,EACtBS,EACAV,CAAM,EA+BV,MAAO,CAAEoB,QAhBO,CAACC,EAAoBZ,IAE/BY,GAAUV,SAASC,IAAI,+BAAuCS,EAE3D,IAAIC,SAASD,EAASE,KAAM,IAC9BF,EAEHV,QAAS,IACJU,EAASV,QACZ,CAAC,8BAA+BH,EAAuBC,OACpDe,OAAOC,QAAQnB,IAClBoB,QAAOC,GAAKA,EAAE,OAKFC,UA5BCnB,IACjB,GAAsB,WAAlBA,EAAQoB,OACV,OAAO,IAAIP,SAAS,KAAM,CACxBQ,OAAQ,IACRnB,QAASa,OAAOC,QAAQ,CACtB,8BAA+BjB,EAAuBC,MACnDH,IACFoB,QAAOC,GAAKA,EAAE,MAEpB,EAmB0B"}
|
package/cors.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=(e={})=>{const{origin:o="*",credentials:s=!1,allowMethods:r="*",allowHeaders:n,exposeHeaders:c,maxAge:t}=e,a={"access-control-allow-headers":n?.join?.(",")??n,"access-control-expose-headers":c?.join?.(",")??c,"access-control-allow-methods":r?.join?.(",")??r,"access-control-max-age":t,"access-control-allow-credentials":s},l=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};return{corsify:(e,o)=>e?.headers?.get("access-control-allow-origin")?e:new Response(e.body,{...e,headers:[...e.headers,["access-control-allow-origin",l(o)],...Object.entries(a)].filter((e=>e[1]))}),preflight:e=>{if("OPTIONS"==e.method)return new Response(null,{status:204,headers:Object.entries({"access-control-allow-origin":l(e),...a}).filter((e=>e[1]))})}}};export{e as cors};
|
|
2
|
+
//# sourceMappingURL=cors.mjs.map
|
package/cors.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.mjs","sources":["../src/src/cors.ts"],"sourcesContent":[null],"names":["cors","options","origin","credentials","allowMethods","allowHeaders","exposeHeaders","maxAge","corsHeaders","join","getAccessControlOrigin","request","requestOrigin","headers","get","RegExp","test","undefined","Array","isArray","includes","Function","corsify","response","Response","body","Object","entries","filter","v","preflight","method","status"],"mappings":"MAUaA,EAAO,CAACC,EAAuB,MAE1C,MAAMC,OACJA,EAAS,IAAGC,YACZA,GAAc,EAAKC,aACnBA,EAAe,IAAGC,aAClBA,EAAYC,cACZA,EAAaC,OACbA,GACEN,EAGEO,EAAmC,CACvC,+BAAgCH,GAAcI,OAAO,MAAQJ,EAE7D,gCAAiCC,GAAeG,OAAO,MAAQH,EAE/D,+BAAgCF,GAAcK,OAAO,MAAQL,EAC7D,yBAA0BG,EAC1B,mCAAoCJ,GAGhCO,EAA0BC,IAC9B,MAAMC,EAAgBD,GAASE,QAAQC,IAAI,UAG3C,OAAe,IAAXZ,EAAwBU,EAExBV,aAAkBa,OAAeb,EAAOc,KAAKJ,GAAiBA,OAAgBK,EAE9EC,MAAMC,QAAQjB,GAAgBA,EAAOkB,SAASR,GAAiBA,OAAgBK,EAE/Ef,aAAkBmB,SAAiBnB,EAAOU,GAG7B,KAAVV,GAAiBC,EACtBS,EACAV,CAAM,EA+BV,MAAO,CAAEoB,QAhBO,CAACC,EAAoBZ,IAE/BY,GAAUV,SAASC,IAAI,+BAAuCS,EAE3D,IAAIC,SAASD,EAASE,KAAM,IAC9BF,EAEHV,QAAS,IACJU,EAASV,QACZ,CAAC,8BAA+BH,EAAuBC,OACpDe,OAAOC,QAAQnB,IAClBoB,QAAOC,GAAKA,EAAE,OAKFC,UA5BCnB,IACjB,GAAsB,WAAlBA,EAAQoB,OACV,OAAO,IAAIP,SAAS,KAAM,CACxBQ,OAAQ,IACRnB,QAASa,OAAOC,QAAQ,CACtB,8BAA+BjB,EAAuBC,MACnDH,IACFoB,QAAOC,GAAKA,EAAE,MAEpB,EAmB0B"}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=({base:e="",routes:t=[],...
|
|
1
|
+
"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);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)=>void 0!==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={"access-control-allow-headers":s?.join?.(",")??s,"access-control-expose-headers":a?.join?.(",")??a,"access-control-allow-methods":o?.join?.(",")??o,"access-control-max-age":n,"access-control-allow-credentials":r},l=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};return{corsify:(e,t)=>e?.headers?.get("access-control-allow-origin")?e:new Response(e.body,{...e,headers:[...e.headers,["access-control-allow-origin",l(t)],...Object.entries(c)].filter((e=>e[1]))}),preflight:e=>{if("OPTIONS"==e.method)return new Response(null,{status:204,headers:Object.entries({"access-control-allow-origin":l(e),...c}).filter((e=>e[1]))})}}},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;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/src/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/src/Router.ts","../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts","../src/src/withParams.ts","../src/src/StatusError.ts","../src/src/text.ts","../src/src/html.ts","../src/src/jpeg.ts","../src/src/png.ts","../src/src/webp.ts","../src/src/AutoRouter.ts","../src/src/IttyRouter.ts","../src/src/cors.ts","../src/src/status.ts","../src/src/withContent.ts","../src/src/withCookies.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Router","base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","t","handler","before","proxy","outer","method","regex","pathname","params","groups","err","catch","finally","createResponse","format","transform","body","options","undefined","Response","headers","set","json","JSON","stringify","getMessage","code","error","a","b","Error","message","status","withParams","obj","bind","StatusError","constructor","super","Object","assign","this","text","String","html","jpeg","png","webp","missing","f","r","origin","credentials","allowMethods","allowHeaders","exposeHeaders","maxAge","corsHeaders","join","getAccessControlOrigin","requestOrigin","test","Array","isArray","includes","Function","corsify","entries","filter","preflight","content","clone","formData","cookies","split","map","p","reduce"],"mappings":"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"}
|
package/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=({base:e="",routes:t=[],...
|
|
1
|
+
const e=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,a,s)=>(r,...n)=>t.push([o.toUpperCase(),RegExp(`^${(s=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,s])&&a}),routes:t,...r,async fetch(e,...r){let o,a,s=new URL(e.url),n=e.query={__proto__:null};for(let[e,t]of s.searchParams)n[e]=n[e]?[].concat(n[e],t):t;for(let[n,c,l,i]of t)if((n==e.method||"ALL"==n)&&(a=s.pathname.match(c))){e.params=a.groups||{},e.route=i;for(let t of l)if(null!=(o=await t(e.proxy??e,...r)))return o}}}),t=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,a,s)=>(r,...n)=>t.push([o.toUpperCase?.(),RegExp(`^${(s=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,s])&&a}),routes:t,...r,async fetch(e,...o){let a,s,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!=(a=await t(e.proxy??e,...o)))break e;t:for(let[r,c,l,i]of t)if((r==e.method||"ALL"==r)&&(s=n.pathname.match(c))){e.params=s.groups||{},e.route=i;for(let t of l)if(null!=(a=await t(e.proxy??e,...o)))break t}}catch(t){if(!r.catch)throw t;a=await r.catch(t,e.proxy??e,...o)}try{for(let t of r.finally||[])a=await t(a,e.proxy??e,...o)??a}catch(t){if(!r.catch)throw t;a=await r.catch(t,e.proxy??e,...o)}return a}}),r=(e="text/plain; charset=utf-8",t)=>(r,{...o}={})=>{if(void 0===r||r instanceof Response)return r;const a=new Response(t?.(r)??r,o);return a.headers.set("content-type",e),a},o=r("application/json; charset=utf-8",JSON.stringify),a=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,...o}=e;e=e.status||500,t={error:r||a(e),...o}}return t={status:e,..."object"==typeof t?t:{error:t||a(e)}},o(t,{status:e})},n=e=>{e.proxy=new Proxy(e.proxy||e,{get:(t,r)=>void 0!==t[r]?t[r].bind?.(e)||t[r]:t?.params?.[r]})},c=({format:e=o,missing:r=(()=>s(404)),finally:a=[],before:c=[],...l}={})=>t({before:[n,...c],catch:s,finally:[(e,...t)=>e??r(e,...t),e,...a],...l});class l 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 i=(e,t)=>new Response(null,{...t,status:e}),p=r("text/plain; charset=utf-8",String),f=r("text/html"),u=r("image/jpeg"),h=r("image/png"),g=r("image/webp"),d=async e=>{e.content=e.body?await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text())):void 0},w=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,r])=>r?(e[t]=r,e):e),{})},y=(e={})=>{const{origin:t="*",credentials:r=!1,allowMethods:o="*",allowHeaders:a,exposeHeaders:s,maxAge:n}=e,c={"access-control-allow-headers":a?.join?.(",")??a,"access-control-expose-headers":s?.join?.(",")??s,"access-control-allow-methods":o?.join?.(",")??o,"access-control-max-age":n,"access-control-allow-credentials":r},l=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};return{corsify:(e,t)=>e?.headers?.get("access-control-allow-origin")?e:new Response(e.body,{...e,headers:[...e.headers,["access-control-allow-origin",l(t)],...Object.entries(c)].filter((e=>e[1]))}),preflight:e=>{if("OPTIONS"==e.method)return new Response(null,{status:204,headers:Object.entries({"access-control-allow-origin":l(e),...c}).filter((e=>e[1]))})}}};export{c as AutoRouter,e as IttyRouter,t as Router,l as StatusError,y as cors,r as createResponse,s as error,f as html,u as jpeg,o as json,h as png,i as status,p as text,g as webp,d as withContent,w as withCookies,n as withParams};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/src/IttyRouter.ts","../src/src/Router.ts","../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts","../src/src/withParams.ts","../src/src/AutoRouter.ts","../src/src/StatusError.ts","../src/src/status.ts","../src/src/text.ts","../src/src/html.ts","../src/src/jpeg.ts","../src/src/png.ts","../src/src/webp.ts","../src/src/withContent.ts","../src/src/withCookies.ts","../src/src/
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/src/IttyRouter.ts","../src/src/Router.ts","../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts","../src/src/withParams.ts","../src/src/AutoRouter.ts","../src/src/StatusError.ts","../src/src/status.ts","../src/src/text.ts","../src/src/html.ts","../src/src/jpeg.ts","../src/src/png.ts","../src/src/webp.ts","../src/src/withContent.ts","../src/src/withCookies.ts","../src/src/cors.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["IttyRouter","base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","method","regex","pathname","params","groups","handler","proxy","Router","t","before","outer","err","catch","finally","createResponse","format","transform","body","options","undefined","Response","headers","set","json","JSON","stringify","getMessage","code","error","a","b","Error","message","status","withParams","obj","bind","AutoRouter","missing","f","r","StatusError","constructor","super","Object","assign","this","text","String","html","jpeg","png","webp","withContent","content","clone","formData","withCookies","cookies","split","map","p","reduce","cors","origin","credentials","allowMethods","allowHeaders","exposeHeaders","maxAge","corsHeaders","join","getAccessControlOrigin","requestOrigin","test","Array","isArray","includes","Function","corsify","entries","filter","preflight"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "itty-router",
|
|
3
|
-
"version": "4.3.0-next.
|
|
3
|
+
"version": "4.3.0-next.3",
|
|
4
4
|
"description": "A tiny, zero-dependency router, designed to make beautiful APIs in any environment.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"module": "./index.mjs",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"require": "./AutoRouter.js",
|
|
17
17
|
"types": "./AutoRouter.d.ts"
|
|
18
18
|
},
|
|
19
|
-
"./
|
|
20
|
-
"import": "./
|
|
21
|
-
"require": "./
|
|
22
|
-
"types": "./
|
|
19
|
+
"./cors": {
|
|
20
|
+
"import": "./cors.mjs",
|
|
21
|
+
"require": "./cors.js",
|
|
22
|
+
"types": "./cors.d.ts"
|
|
23
23
|
},
|
|
24
24
|
"./createResponse": {
|
|
25
25
|
"import": "./createResponse.mjs",
|
package/withContent.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.withContent=async t=>{t.content=await t.clone().json().catch((()=>t.clone().formData())).catch((()=>t.text()))};
|
|
1
|
+
"use strict";exports.withContent=async t=>{t.content=t.body?await t.clone().json().catch((()=>t.clone().formData())).catch((()=>t.text())):void 0};
|
|
2
2
|
//# sourceMappingURL=withContent.js.map
|
package/withContent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withContent.js","sources":["../src/src/withContent.ts"],"sourcesContent":[null],"names":["async","request","content","clone","json","catch","formData","text"],"mappings":"iCAO2BA,MAAOC,IAChCA,EAAQC,
|
|
1
|
+
{"version":3,"file":"withContent.js","sources":["../src/src/withContent.ts"],"sourcesContent":[null],"names":["async","request","content","body","clone","json","catch","formData","text","undefined"],"mappings":"iCAO2BA,MAAOC,IAChCA,EAAQC,QAAUD,EAAQE,WAChBF,EAAQG,QAAQC,OACnBC,OAAM,IAAML,EAAQG,QAAQG,aAC5BD,OAAM,IAAML,EAAQO,cACvBC,CAAS"}
|
package/withContent.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const t=async t=>{t.content=await t.clone().json().catch((()=>t.clone().formData())).catch((()=>t.text()))};export{t as withContent};
|
|
1
|
+
const t=async t=>{t.content=t.body?await t.clone().json().catch((()=>t.clone().formData())).catch((()=>t.text())):void 0};export{t as withContent};
|
|
2
2
|
//# sourceMappingURL=withContent.mjs.map
|
package/withContent.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withContent.mjs","sources":["../src/src/withContent.ts"],"sourcesContent":[null],"names":["withContent","async","request","content","clone","json","catch","formData","text"],"mappings":"MAOaA,EAAcC,MAAOC,IAChCA,EAAQC,
|
|
1
|
+
{"version":3,"file":"withContent.mjs","sources":["../src/src/withContent.ts"],"sourcesContent":[null],"names":["withContent","async","request","content","body","clone","json","catch","formData","text","undefined"],"mappings":"MAOaA,EAAcC,MAAOC,IAChCA,EAAQC,QAAUD,EAAQE,WAChBF,EAAQG,QAAQC,OACnBC,OAAM,IAAML,EAAQG,QAAQG,aAC5BD,OAAM,IAAML,EAAQO,cACvBC,CAAS"}
|
package/createCors.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { IRequest } from './IttyRouter';
|
|
2
|
-
export type CorsOptions = {
|
|
3
|
-
origins?: string[] | ((origin: string) => boolean);
|
|
4
|
-
maxAge?: number;
|
|
5
|
-
methods?: string[];
|
|
6
|
-
headers?: any;
|
|
7
|
-
};
|
|
8
|
-
export declare const createCors: (options?: CorsOptions) => {
|
|
9
|
-
corsify: (response: Response) => Response;
|
|
10
|
-
preflight: (r: IRequest) => Response | undefined;
|
|
11
|
-
};
|
package/createCors.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";exports.createCors=(e={})=>{const{origins:s=["*"],maxAge:o,methods:t=["GET"],headers:n={}}=e;let r;const c="function"==typeof s?s:e=>s.includes(e)||s.includes("*"),l={"content-type":"application/json","Access-Control-Allow-Methods":t.join(", "),...n};o&&(l["Access-Control-Max-Age"]=o);return{corsify:e=>{if(!e)throw new Error("No fetch handler responded and no upstream to proxy to specified.");const{headers:s,status:o,body:t}=e;return[101,301,302,308].includes(o)||s.get("access-control-allow-origin")?e:new Response(t,{status:o,headers:{...Object.fromEntries(s),...l,...r,"content-type":s.get("content-type")}})},preflight:e=>{const s=[...new Set(["OPTIONS",...t])],o=e.headers.get("origin")||"";if(r=c(o)&&{"Access-Control-Allow-Origin":o},"OPTIONS"===e.method){const o={...l,"Access-Control-Allow-Methods":s.join(", "),"Access-Control-Allow-Headers":e.headers.get("Access-Control-Request-Headers"),...r};return new Response(null,{headers:e.headers.get("Origin")&&e.headers.get("Access-Control-Request-Method")&&e.headers.get("Access-Control-Request-Headers")?o:{Allow:s.join(", ")}})}}}};
|
|
2
|
-
//# sourceMappingURL=createCors.js.map
|
package/createCors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createCors.js","sources":["../src/src/createCors.ts"],"sourcesContent":[null],"names":["options","origins","maxAge","methods","headers","allowOrigin","isAllowOrigin","origin","includes","rHeaders","join","corsify","response","Error","status","body","get","Response","Object","fromEntries","preflight","r","useMethods","Set","method","reqHeaders","Allow"],"mappings":"gCAU0B,CAACA,EAAuB,MAEhD,MAAMC,QAAEA,EAAU,CAAC,KAAIC,OAAEA,EAAMC,QAAEA,EAAU,CAAC,OAAMC,QAAEA,EAAU,CAAE,GAAKJ,EAErE,IAAIK,EACJ,MAAMC,EAAmC,mBAAZL,EACzBA,EACCM,GAAoBN,EAAQO,SAASD,IAAWN,EAAQO,SAAS,KAGhEC,EAAW,CACf,eAAgB,mBAChB,+BAAgCN,EAAQO,KAAK,SAC1CN,GAIDF,IAAQO,EAAS,0BAA4BP,GA+DjD,MAAO,CAAES,QA5BQC,IACf,IAAKA,EACH,MAAM,IAAIC,MACR,qEAGJ,MAAMT,QAAEA,EAAOU,OAAEA,EAAMC,KAAEA,GAASH,EAGlC,MACE,CAAC,IAAK,IAAK,IAAK,KAAKJ,SAASM,IAC9BV,EAAQY,IAAI,+BAELJ,EAGF,IAAIK,SAASF,EAAM,CACxBD,SACAV,QAAS,IACJc,OAAOC,YAAYf,MACnBK,KACAJ,EACH,eAAgBD,EAAQY,IAAI,kBAE9B,EAIcI,UA5DCC,IAEjB,MAAMC,EAAa,IAAI,IAAIC,IAAI,CAAC,aAAcpB,KACxCI,EAASc,EAAEjB,QAAQY,IAAI,WAAa,GAM1C,GAHAX,EAAcC,EAAcC,IAAW,CAAE,8BAA+BA,GAGvD,YAAbc,EAAEG,OAAsB,CAC1B,MAAMC,EAAa,IACdhB,EACH,+BAAgCa,EAAWZ,KAAK,MAChD,+BAAgCW,EAAEjB,QAAQY,IACxC,qCAECX,GAIL,OAAO,IAAIY,SAAS,KAAM,CACxBb,QACEiB,EAAEjB,QAAQY,IAAI,WACdK,EAAEjB,QAAQY,IAAI,kCACdK,EAAEjB,QAAQY,IAAI,kCACVS,EACA,CAAEC,MAAOJ,EAAWZ,KAAK,QAElC,GAgC0B"}
|
package/createCors.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=(e={})=>{const{origins:o=["*"],maxAge:s,methods:t=["GET"],headers:n={}}=e;let r;const c="function"==typeof o?o:e=>o.includes(e)||o.includes("*"),l={"content-type":"application/json","Access-Control-Allow-Methods":t.join(", "),...n};s&&(l["Access-Control-Max-Age"]=s);return{corsify:e=>{if(!e)throw new Error("No fetch handler responded and no upstream to proxy to specified.");const{headers:o,status:s,body:t}=e;return[101,301,302,308].includes(s)||o.get("access-control-allow-origin")?e:new Response(t,{status:s,headers:{...Object.fromEntries(o),...l,...r,"content-type":o.get("content-type")}})},preflight:e=>{const o=[...new Set(["OPTIONS",...t])],s=e.headers.get("origin")||"";if(r=c(s)&&{"Access-Control-Allow-Origin":s},"OPTIONS"===e.method){const s={...l,"Access-Control-Allow-Methods":o.join(", "),"Access-Control-Allow-Headers":e.headers.get("Access-Control-Request-Headers"),...r};return new Response(null,{headers:e.headers.get("Origin")&&e.headers.get("Access-Control-Request-Method")&&e.headers.get("Access-Control-Request-Headers")?s:{Allow:o.join(", ")}})}}}};export{e as createCors};
|
|
2
|
-
//# sourceMappingURL=createCors.mjs.map
|
package/createCors.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createCors.mjs","sources":["../src/src/createCors.ts"],"sourcesContent":[null],"names":["createCors","options","origins","maxAge","methods","headers","allowOrigin","isAllowOrigin","origin","includes","rHeaders","join","corsify","response","Error","status","body","get","Response","Object","fromEntries","preflight","r","useMethods","Set","method","reqHeaders","Allow"],"mappings":"MAUaA,EAAa,CAACC,EAAuB,MAEhD,MAAMC,QAAEA,EAAU,CAAC,KAAIC,OAAEA,EAAMC,QAAEA,EAAU,CAAC,OAAMC,QAAEA,EAAU,CAAE,GAAKJ,EAErE,IAAIK,EACJ,MAAMC,EAAmC,mBAAZL,EACzBA,EACCM,GAAoBN,EAAQO,SAASD,IAAWN,EAAQO,SAAS,KAGhEC,EAAW,CACf,eAAgB,mBAChB,+BAAgCN,EAAQO,KAAK,SAC1CN,GAIDF,IAAQO,EAAS,0BAA4BP,GA+DjD,MAAO,CAAES,QA5BQC,IACf,IAAKA,EACH,MAAM,IAAIC,MACR,qEAGJ,MAAMT,QAAEA,EAAOU,OAAEA,EAAMC,KAAEA,GAASH,EAGlC,MACE,CAAC,IAAK,IAAK,IAAK,KAAKJ,SAASM,IAC9BV,EAAQY,IAAI,+BAELJ,EAGF,IAAIK,SAASF,EAAM,CACxBD,SACAV,QAAS,IACJc,OAAOC,YAAYf,MACnBK,KACAJ,EACH,eAAgBD,EAAQY,IAAI,kBAE9B,EAIcI,UA5DCC,IAEjB,MAAMC,EAAa,IAAI,IAAIC,IAAI,CAAC,aAAcpB,KACxCI,EAASc,EAAEjB,QAAQY,IAAI,WAAa,GAM1C,GAHAX,EAAcC,EAAcC,IAAW,CAAE,8BAA+BA,GAGvD,YAAbc,EAAEG,OAAsB,CAC1B,MAAMC,EAAa,IACdhB,EACH,+BAAgCa,EAAWZ,KAAK,MAChD,+BAAgCW,EAAEjB,QAAQY,IACxC,qCAECX,GAIL,OAAO,IAAIY,SAAS,KAAM,CACxBb,QACEiB,EAAEjB,QAAQY,IAAI,WACdK,EAAEjB,QAAQY,IAAI,kCACdK,EAAEjB,QAAQY,IAAI,kCACVS,EACA,CAAEC,MAAOJ,EAAWZ,KAAK,QAElC,GAgC0B"}
|