itty-router 4.2.2 → 4.3.0-next.1
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 +8 -0
- package/AutoRouter.js +2 -0
- package/AutoRouter.js.map +1 -0
- package/AutoRouter.mjs +2 -0
- package/AutoRouter.mjs.map +1 -0
- package/IttyRouter.d.ts +53 -0
- package/IttyRouter.js +2 -0
- package/IttyRouter.js.map +1 -0
- package/IttyRouter.mjs +2 -0
- package/IttyRouter.mjs.map +1 -0
- package/README.md +25 -169
- package/Router.d.ts +12 -53
- package/Router.js +1 -1
- package/Router.js.map +1 -1
- package/Router.mjs +1 -1
- package/Router.mjs.map +1 -1
- package/createCors.d.ts +1 -1
- package/createResponse.js +1 -1
- package/createResponse.js.map +1 -1
- package/createResponse.mjs +1 -1
- package/createResponse.mjs.map +1 -1
- package/error.js +1 -1
- package/error.js.map +1 -1
- package/error.mjs +1 -1
- package/error.mjs.map +1 -1
- package/html.js +1 -1
- package/html.js.map +1 -1
- package/html.mjs +1 -1
- package/html.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/index.mjs +1 -1
- package/index.mjs.map +1 -1
- package/jpeg.js +1 -1
- package/jpeg.js.map +1 -1
- package/jpeg.mjs +1 -1
- package/jpeg.mjs.map +1 -1
- package/json.js +1 -1
- package/json.js.map +1 -1
- package/json.mjs +1 -1
- package/json.mjs.map +1 -1
- package/package.json +11 -1
- package/png.js +1 -1
- package/png.js.map +1 -1
- package/png.mjs +1 -1
- package/png.mjs.map +1 -1
- package/text.js +1 -1
- package/text.js.map +1 -1
- package/text.mjs +1 -1
- package/text.mjs.map +1 -1
- package/webp.js +1 -1
- package/webp.js.map +1 -1
- package/webp.mjs +1 -1
- package/webp.mjs.map +1 -1
- package/websocket.js +1 -1
- package/websocket.js.map +1 -1
- package/websocket.mjs +1 -1
- package/websocket.mjs.map +1 -1
- package/withContent.d.ts +1 -1
- package/withContent.js +1 -1
- package/withContent.js.map +1 -1
- package/withContent.mjs +1 -1
- package/withContent.mjs.map +1 -1
- package/withCookies.d.ts +1 -1
- package/withParams.d.ts +1 -1
package/AutoRouter.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RouteHandler } from 'IttyRouter';
|
|
2
|
+
import { ResponseHandler, RouterOptions } from './Router';
|
|
3
|
+
type AutoRouterOptions = {
|
|
4
|
+
missing?: RouteHandler;
|
|
5
|
+
format?: ResponseHandler;
|
|
6
|
+
} & RouterOptions;
|
|
7
|
+
export declare const AutoRouter: ({ format, missing, finally: f, before, ...options }?: AutoRouterOptions) => import("./Router").RouterType<import("IttyRouter").Route, any[]>;
|
|
8
|
+
export {};
|
package/AutoRouter.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=((e="text/plain; charset=utf-8",r)=>(t,{...o}={})=>{if(void 0===t||t instanceof Response)return t;const a=new Response(r?.(t)??t,o);return a.headers.set("content-type",e),a})("application/json; charset=utf-8",JSON.stringify),r=e=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[e]||"Unknown Error"),t=(t=500,o)=>{if(t instanceof Error){const{message:e,...a}=t;t=t.status||500,o={error:e||r(t),...a}}return o={status:t,..."object"==typeof o?o:{error:o||r(t)}},e(o,{status:t})},o=e=>{e.proxy=new Proxy(e.proxy||e,{get:(r,t)=>void 0!==r[t]?r[t].bind?.(e)||r[t]:r?.params?.[t]})};exports.AutoRouter=({format:r=e,missing:a=(()=>t(404)),finally:n=[],before:s=[],...c}={})=>(({base:e="",routes:r=[],...t}={})=>({__proto__:new Proxy({},{get:(t,o,a,n)=>"handle"==o?a.fetch:(t,...s)=>r.push([o.toUpperCase?.(),RegExp(`^${(n=(e+t).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),s,n])&&a}),routes:r,...t,async fetch(e,...o){let a,n,s=new URL(e.url),c=e.query={__proto__:null};for(let[e,r]of s.searchParams)c[e]=c[e]?[].concat(c[e],r):r;e:try{for(let r of t.before||[])if(null!=(a=await r(e.proxy??e,...o)))break e;r:for(let[t,c,f,i]of r)if((t==e.method||"ALL"==t)&&(n=s.pathname.match(c))){e.params=n.groups||{},e.route=i;for(let r of f)if(null!=(a=await r(e.proxy??e,...o)))break r}}catch(r){if(!t.catch)throw r;a=await t.catch(r,e.proxy??e,...o)}try{for(let r of t.finally||[])a=await r(a,e.proxy??e,...o)??a}catch(r){if(!t.catch)throw r;a=await t.catch(r,e.proxy??e,...o)}return a}}))({before:[o,...s],catch:t,finally:[(e,...r)=>e??a(e,...r),r,...n],...c});
|
|
2
|
+
//# sourceMappingURL=AutoRouter.js.map
|
|
@@ -0,0 +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","fetch","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
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=((e="text/plain; charset=utf-8",r)=>(t,{...o}={})=>{if(void 0===t||t instanceof Response)return t;const a=new Response(r?.(t)??t,o);return a.headers.set("content-type",e),a})("application/json; charset=utf-8",JSON.stringify),r=e=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[e]||"Unknown Error"),t=(t=500,o)=>{if(t instanceof Error){const{message:e,...a}=t;t=t.status||500,o={error:e||r(t),...a}}return o={status:t,..."object"==typeof o?o:{error:o||r(t)}},e(o,{status:t})},o=e=>{e.proxy=new Proxy(e.proxy||e,{get:(r,t)=>void 0!==r[t]?r[t].bind?.(e)||r[t]:r?.params?.[t]})},a=({format:r=e,missing:a=(()=>t(404)),finally:n=[],before:s=[],...c}={})=>(({base:e="",routes:r=[],...t}={})=>({__proto__:new Proxy({},{get:(t,o,a,n)=>"handle"==o?a.fetch:(t,...s)=>r.push([o.toUpperCase?.(),RegExp(`^${(n=(e+t).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),s,n])&&a}),routes:r,...t,async fetch(e,...o){let a,n,s=new URL(e.url),c=e.query={__proto__:null};for(let[e,r]of s.searchParams)c[e]=c[e]?[].concat(c[e],r):r;e:try{for(let r of t.before||[])if(null!=(a=await r(e.proxy??e,...o)))break e;r:for(let[t,c,f,p]of r)if((t==e.method||"ALL"==t)&&(n=s.pathname.match(c))){e.params=n.groups||{},e.route=p;for(let r of f)if(null!=(a=await r(e.proxy??e,...o)))break r}}catch(r){if(!t.catch)throw r;a=await t.catch(r,e.proxy??e,...o)}try{for(let r of t.finally||[])a=await r(a,e.proxy??e,...o)??a}catch(r){if(!t.catch)throw r;a=await t.catch(r,e.proxy??e,...o)}return a}}))({before:[o,...s],catch:t,finally:[(e,...r)=>e??a(e,...r),r,...n],...c});export{a as AutoRouter};
|
|
2
|
+
//# sourceMappingURL=AutoRouter.mjs.map
|
|
@@ -0,0 +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","fetch","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
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export type GenericTraps = {
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
};
|
|
4
|
+
export type RequestLike = {
|
|
5
|
+
method: string;
|
|
6
|
+
url: string;
|
|
7
|
+
} & GenericTraps;
|
|
8
|
+
export type IRequestStrict = {
|
|
9
|
+
method: string;
|
|
10
|
+
url: string;
|
|
11
|
+
route: string;
|
|
12
|
+
params: {
|
|
13
|
+
[key: string]: string;
|
|
14
|
+
};
|
|
15
|
+
query: {
|
|
16
|
+
[key: string]: string | string[] | undefined;
|
|
17
|
+
};
|
|
18
|
+
proxy?: any;
|
|
19
|
+
} & Request;
|
|
20
|
+
export type IRequest = IRequestStrict & GenericTraps;
|
|
21
|
+
export type IttyRouterOptions = {
|
|
22
|
+
base?: string;
|
|
23
|
+
routes?: RouteEntry[];
|
|
24
|
+
} & Record<string, any>;
|
|
25
|
+
export type RouteHandler<I = IRequest, A extends any[] = any[]> = {
|
|
26
|
+
(request: I, ...args: A): any;
|
|
27
|
+
};
|
|
28
|
+
export type RouteEntry = [
|
|
29
|
+
httpMethod: string,
|
|
30
|
+
match: RegExp,
|
|
31
|
+
handlers: RouteHandler[],
|
|
32
|
+
path?: string
|
|
33
|
+
];
|
|
34
|
+
export type Route = <RequestType = IRequest, Args extends any[] = any[], RT = IttyRouterType>(path: string, ...handlers: RouteHandler<RequestType, Args>[]) => RT;
|
|
35
|
+
export type UniversalRoute<RequestType = IRequest, Args extends any[] = any[]> = (path: string, ...handlers: RouteHandler<RequestType, Args>[]) => IttyRouterType<UniversalRoute<RequestType, Args>, Args>;
|
|
36
|
+
export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
|
|
37
|
+
export type CustomRoutes<R = Route> = {
|
|
38
|
+
[key: string]: R;
|
|
39
|
+
};
|
|
40
|
+
export type IttyRouterType<R = Route, Args extends any[] = any[]> = {
|
|
41
|
+
__proto__: IttyRouterType<R>;
|
|
42
|
+
routes: RouteEntry[];
|
|
43
|
+
fetch: <A extends any[] = Args>(request: RequestLike, ...extra: Equal<R, Args> extends true ? A : Args) => Promise<any>;
|
|
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> & Record<string, any>;
|
|
53
|
+
export declare const IttyRouter: <RequestType = IRequest, Args extends any[] = any[], RouteType = Equal<RequestType, IRequest> extends true ? Route : UniversalRoute<RequestType, Args>>({ base, routes, ...other }?: IttyRouterOptions) => IttyRouterType<RouteType, Args>;
|
package/IttyRouter.js
ADDED
|
@@ -0,0 +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?.(),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
|
+
//# sourceMappingURL=IttyRouter.js.map
|
|
@@ -0,0 +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":"gCA0E0B,EAItBA,OAAO,GAAIC,SAAS,MAAOC,GAA6B,CAAE,KAE5D,CACEC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAsBC,IAErD,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,iBAEvBJ,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
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
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
|
+
//# sourceMappingURL=IttyRouter.mjs.map
|
|
@@ -0,0 +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":"AA0Ea,MAAAA,EAAa,EAItBC,OAAO,GAAIC,SAAS,MAAOC,GAA6B,CAAE,KAE5D,CACEC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAsBC,IAErD,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,iBAEvBJ,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
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://itty.dev/itty-router">
|
|
3
|
-
<img src="https://github.com/kwhitley/itty-router/assets/865416/
|
|
3
|
+
<img src="https://github.com/kwhitley/itty-router/assets/865416/319e4148-0a2d-4396-b18b-9e1cbb8e27b6" alt="Itty Router" />
|
|
4
4
|
</a>
|
|
5
|
+
<br /><br />
|
|
5
6
|
<p>
|
|
6
7
|
|
|
7
|
-
<h2 align="center"><a href="https://itty.dev/itty-router">v4.x Documentation @ itty.dev</a>
|
|
8
|
-
<br /></h2>
|
|
9
|
-
|
|
10
8
|
<p align="center">
|
|
11
9
|
<a href="https://npmjs.com/package/itty-router" target="_blank">
|
|
12
10
|
<img src="https://img.shields.io/npm/v/itty-router.svg?style=flat-square" alt="npm version" />
|
|
@@ -26,20 +24,17 @@
|
|
|
26
24
|
<a href="https://github.com/kwhitley/itty-router/issues" target="_blank">
|
|
27
25
|
<img src="https://img.shields.io/github/issues/kwhitley/itty-router?style=flat-square" alt="open issues" />
|
|
28
26
|
</a>
|
|
29
|
-
<a href="" target="_blank">
|
|
30
|
-
<img src="" alt="" />
|
|
31
|
-
</a>
|
|
32
|
-
</p>
|
|
33
27
|
|
|
34
|
-
<
|
|
28
|
+
<br />
|
|
29
|
+
|
|
35
30
|
<a href="https://discord.gg/53vyrZAu9u" target="_blank">
|
|
36
31
|
<img src="https://img.shields.io/discord/832353585802903572?label=Discord&logo=Discord&style=flat-square&logoColor=fff" alt="join us on discord" />
|
|
37
32
|
</a>
|
|
38
33
|
<a href="https://github.com/kwhitley/itty-router" target="_blank">
|
|
39
34
|
<img src="https://img.shields.io/github/stars/kwhitley/itty-router?style=social" alt="repo stars" />
|
|
40
35
|
</a>
|
|
41
|
-
<a href="https://www.twitter.com/
|
|
42
|
-
<img src="https://img.shields.io/twitter/follow/
|
|
36
|
+
<a href="https://www.twitter.com/ittydev" target="_blank">
|
|
37
|
+
<img src="https://img.shields.io/twitter/follow/ittydev.svg?style=social&label=Follow" alt="follow ittydev" />
|
|
43
38
|
</a>
|
|
44
39
|
<a href="" target="_blank">
|
|
45
40
|
<img src="" alt="" />
|
|
@@ -48,181 +43,41 @@
|
|
|
48
43
|
|
|
49
44
|
---
|
|
50
45
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
Designed originally for [Cloudflare Workers](https://itty.dev/itty-router/runtimes#Cloudflare%20Workers), itty can be used in browsers, service workers, edge functions, or runtimes like [Node](https://itty.dev/itty-router/runtimes#Node), [Bun](https://itty.dev/itty-router/runtimes#Bun), etc.!
|
|
46
|
+
An ultra-tiny API microrouter, for use when [size matters](https://github.com/TigersWay/cloudflare-playground) (e.g. [Cloudflare Workers](https://developers.cloudflare.com/workers/)).
|
|
54
47
|
|
|
55
48
|
## Features
|
|
56
49
|
|
|
57
|
-
- Tiny. [~
|
|
58
|
-
- [
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
[optional params](https://itty.dev/itty-router/route-patterns#optional),
|
|
65
|
-
[wildcards](https://itty.dev/itty-router/route-patterns#wildcards),
|
|
66
|
-
[greedy params](https://itty.dev/itty-router/route-patterns#greedy),
|
|
67
|
-
[file formats](https://itty.dev/itty-router/route-patterns#file-formats)
|
|
68
|
-
and [query strings](https://itty.dev/itty-router/route-patterns#query).
|
|
69
|
-
- Extremely extendable/flexible. We leave you in complete control.
|
|
70
|
-
|
|
71
|
-
## [Full Documentation](https://itty.dev/itty-router)
|
|
50
|
+
- Tiny. We have routers from [~450 bytes](https://itty.dev/itty-router/routers/ittyrouter) to a [~1kB bytes](https://itty.dev/itty-router/routers/autorouter) batteries-included version. For comparison, [express.js](https://www.npmjs.com/package/express) is over 200x as large.
|
|
51
|
+
- Web Standards - Use it [anywhere, in any environment](https://itty.dev/itty-router/runtimes).
|
|
52
|
+
- No assumptions. Return anything you like, pass in any arguments you like.
|
|
53
|
+
- Future-proof. HTTP methods not-yet-invented already work with it.
|
|
54
|
+
- [Route-parsing](https://itty.dev/itty-router/route-patterns) & [query parsing](https://itty.dev/itty-router/route-patterns#query).
|
|
55
|
+
- [Middleware](https://itty.dev/itty-router/middleware) - use ours or write your own.
|
|
56
|
+
- [Nesting](https://itty.dev/itty-router/nesting).
|
|
72
57
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
## Installation
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
npm install itty-router
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## Example
|
|
58
|
+
## Example (Cloudflare Worker or Bun)
|
|
82
59
|
|
|
83
60
|
```js
|
|
84
|
-
import {
|
|
85
|
-
error, // creates error responses
|
|
86
|
-
json, // creates JSON responses
|
|
87
|
-
Router, // the ~440 byte router itself
|
|
88
|
-
withParams, // middleware: puts params directly on the Request
|
|
89
|
-
} from 'itty-router'
|
|
90
|
-
import { todos } from './external/todos'
|
|
91
|
-
|
|
92
|
-
// create a new Router
|
|
93
|
-
const router = Router()
|
|
94
|
-
|
|
95
|
-
router
|
|
96
|
-
// add some middleware upstream on all routes
|
|
97
|
-
.all('*', withParams)
|
|
98
|
-
|
|
99
|
-
// GET list of todos
|
|
100
|
-
.get('/todos', () => todos)
|
|
101
|
-
|
|
102
|
-
// GET single todo, by ID
|
|
103
|
-
.get(
|
|
104
|
-
'/todos/:id',
|
|
105
|
-
({ id }) => todos.getById(id) || error(404, 'That todo was not found')
|
|
106
|
-
)
|
|
107
|
-
|
|
108
|
-
// 404 for everything else
|
|
109
|
-
.all('*', () => error(404))
|
|
110
|
-
|
|
111
|
-
// Example: Cloudflare Worker module syntax
|
|
112
|
-
export default {
|
|
113
|
-
fetch: (request, ...args) =>
|
|
114
|
-
router
|
|
115
|
-
.handle(request, ...args)
|
|
116
|
-
.then(json) // send as JSON
|
|
117
|
-
.catch(error), // catch errors
|
|
118
|
-
}
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
# What's different about itty? <a name="a-different-kind-of-router"></a>
|
|
122
|
-
Itty does a few things very differently from other routers. This allows itty route code to be shorter and more intuitive than most!
|
|
123
|
-
|
|
124
|
-
### 1. Simpler handler/middleware flow.
|
|
125
|
-
In itty, you simply return (anything) to exit the flow. If any handler ever returns a thing, that's what the `router.handle` returns. If it doesn't, it's considered middleware, and the next handler is called.
|
|
61
|
+
import { AutoRouter } from 'itty-router' // ~1kB
|
|
126
62
|
|
|
127
|
-
|
|
63
|
+
export default AutoRouter()
|
|
64
|
+
.get('/hello/:name', ({ name }) => `Hello, ${name}!`)
|
|
65
|
+
.get('/json', () => [1,2,3])
|
|
66
|
+
.get('/promises', () => Promise.resolve('foo'))
|
|
128
67
|
|
|
129
|
-
|
|
130
|
-
// not middleware: any handler that returns (anything at all)
|
|
131
|
-
(request) => [1, 4, 5, 1]
|
|
132
|
-
|
|
133
|
-
// middleware: simply doesn't return
|
|
134
|
-
const withUser = (request) => {
|
|
135
|
-
request.user = 'Halsey'
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// a middleware that *might* return
|
|
139
|
-
const onlyHalsey = (request) => {
|
|
140
|
-
if (request.user !== 'Halsey') {
|
|
141
|
-
return error(403, 'Only Halsey is allowed to see this!')
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// uses middleware, then returns something
|
|
146
|
-
route.get('/secure', withUser, onlyHalsey,
|
|
147
|
-
({ user }) => `Hey, ${user} - welcome back!`
|
|
148
|
-
)
|
|
68
|
+
// that's it ^-^
|
|
149
69
|
```
|
|
150
70
|
|
|
151
|
-
|
|
152
|
-
We've been stuck in this pattern for over a decade. Almost every router still expects you to build and return a [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)... in every single route.
|
|
153
|
-
|
|
154
|
-
We think you should be able to do that once, at the end. In most modern APIs for instance, we're serving JSON in the majority of our routes. So why handle that more than once?
|
|
155
|
-
```ts
|
|
156
|
-
router
|
|
157
|
-
// we can still do it the manual way
|
|
158
|
-
.get('/traditional', (request) => json([1, 2, 3]))
|
|
159
|
-
|
|
160
|
-
// or defer to later
|
|
161
|
-
.get('/easy-mode', (request) => [1, 2, 3])
|
|
162
|
-
|
|
163
|
-
// later, when handling a request
|
|
164
|
-
router
|
|
165
|
-
.handle(request)
|
|
166
|
-
.then(json) // we can turn any non-Response into valid JSON.
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### 3. It's all Promises.
|
|
170
|
-
itty `await`s every handler, looking for a return value. If it gets one, it breaks the flow and returns the value. If it doesn't, it continues processing handlers/routes until it does. This means that every handler can either be synchronous or async - it's all the same.
|
|
171
|
-
|
|
172
|
-
When paired with the fact that we can simply return raw data and transform it later, this is AWESOME for working with async APIs, database layers, etc. We don't need to transform anything at the route, we can simply return the Promise (to data) itself!
|
|
71
|
+
# [Full Documentation](https://itty.dev/itty-router) @ [itty.dev](https://itty.dev)
|
|
173
72
|
|
|
174
|
-
|
|
175
|
-
```ts
|
|
176
|
-
import { myDatabase } from './somewhere'
|
|
177
|
-
|
|
178
|
-
router
|
|
179
|
-
// assumes getItems() returns a Promise to some data
|
|
180
|
-
.get('/items', () => myDatabase.getItems())
|
|
181
|
-
|
|
182
|
-
// later, when handling a request
|
|
183
|
-
router
|
|
184
|
-
.handle(request)
|
|
185
|
-
.then(json) // we can turn any non-Response into valid JSON.
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
### 4. Only one required argument. The rest is up to you.
|
|
189
|
-
itty only requires one argument - a Request-like object with the following shape: `{ url, method }` (usually a native [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request)). Because itty is not opinionated about [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) creation, there is not "response" argument built in. Every other argument you pass to `route.handle` is given to each handler, in the same order.
|
|
190
|
-
|
|
191
|
-
> ### This makes itty one of the most platform-agnostic routers, *period*, as it's able to match up to any platform's signature.
|
|
192
|
-
|
|
193
|
-
Here's an example using [Cloudflare Worker](https://workers.cloudflare.com/) arguments:
|
|
194
|
-
```ts
|
|
195
|
-
router
|
|
196
|
-
.get('/my-route', (request, environment, context) => {
|
|
197
|
-
// we can access anything here that was passed to `router.handle`.
|
|
198
|
-
})
|
|
199
|
-
|
|
200
|
-
// Cloudflare gives us 3 arguments: request, environment, and context.
|
|
201
|
-
// Passing them to `route.handle` gives every route handler (above) access to each.
|
|
202
|
-
export default {
|
|
203
|
-
fetch: (request, env, ctx) => router
|
|
204
|
-
.handle(request, env, ctx)
|
|
205
|
-
.then(json)
|
|
206
|
-
.catch(error)
|
|
207
|
-
}
|
|
208
|
-
```
|
|
73
|
+
Complete API documentation is available at [itty.dev/itty-router](https://itty.dev/itty-router), or join our [Discord](https://discord.gg/53vyrZAu9u) channel to chat with community members for quick help!
|
|
209
74
|
|
|
210
75
|
## Join the Discussion!
|
|
211
76
|
|
|
212
|
-
Have a question? Suggestion? Complaint? Want to send a gift basket?
|
|
77
|
+
Have a question? Suggestion? Idea? Complaint? Want to send a gift basket?
|
|
213
78
|
|
|
214
79
|
Join us on [Discord](https://discord.gg/53vyrZAu9u)!
|
|
215
80
|
|
|
216
|
-
## Testing and Contributing
|
|
217
|
-
|
|
218
|
-
1. Fork repo
|
|
219
|
-
1. Install dev dependencies via `yarn`
|
|
220
|
-
1. Start test runner/dev mode `yarn dev`
|
|
221
|
-
1. Add your code and tests if needed - do NOT remove/alter existing tests
|
|
222
|
-
1. Commit files
|
|
223
|
-
1. Submit PR (and fill out the template)
|
|
224
|
-
1. I'll add you to the credits! :)
|
|
225
|
-
|
|
226
81
|
## Special Thanks: Contributors
|
|
227
82
|
|
|
228
83
|
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
|
|
@@ -244,6 +99,7 @@ These folks are the real heroes, making open source the powerhouse that it is! H
|
|
|
244
99
|
- [@technoyes](https://github.com/technoyes) - three kind-of-a-big-deal errors fixed. Imagine the look on my face... thanks man!! :)
|
|
245
100
|
- [@roojay520](https://github.com/roojay520) - TS interface fixes
|
|
246
101
|
- [@jahands](https://github.com/jahands) - v4.x TS fixes
|
|
102
|
+
- and many, many others
|
|
247
103
|
|
|
248
104
|
#### Documentation
|
|
249
105
|
|
package/Router.d.ts
CHANGED
|
@@ -1,55 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export type RequestLike = {
|
|
5
|
-
method: string;
|
|
6
|
-
url: string;
|
|
7
|
-
} & GenericTraps;
|
|
8
|
-
export type IRequestStrict = {
|
|
9
|
-
method: string;
|
|
10
|
-
url: string;
|
|
11
|
-
route: string;
|
|
12
|
-
params: {
|
|
13
|
-
[key: string]: string;
|
|
14
|
-
};
|
|
15
|
-
query: {
|
|
16
|
-
[key: string]: string | string[] | undefined;
|
|
17
|
-
};
|
|
18
|
-
proxy?: any;
|
|
19
|
-
} & Request;
|
|
20
|
-
export type IRequest = IRequestStrict & GenericTraps;
|
|
21
|
-
export type RouterOptions = {
|
|
22
|
-
base?: string;
|
|
23
|
-
routes?: RouteEntry[];
|
|
24
|
-
} & Record<string, any>;
|
|
25
|
-
export type RouteHandler<I = IRequest, A extends any[] = any[]> = {
|
|
26
|
-
(request: I, ...args: A): any;
|
|
27
|
-
};
|
|
28
|
-
export type RouteEntry = [
|
|
29
|
-
httpMethod: string,
|
|
30
|
-
match: RegExp,
|
|
31
|
-
handlers: RouteHandler[],
|
|
32
|
-
path?: string
|
|
33
|
-
];
|
|
34
|
-
export type Route = <RequestType = IRequest, Args extends any[] = any[], RT = RouterType>(path: string, ...handlers: RouteHandler<RequestType, Args>[]) => RT;
|
|
35
|
-
export type UniversalRoute<RequestType = IRequest, Args extends any[] = any[]> = (path: string, ...handlers: RouteHandler<RequestType, Args>[]) => RouterType<UniversalRoute<RequestType, Args>, Args>;
|
|
36
|
-
type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
|
|
37
|
-
export type CustomRoutes<R = Route> = {
|
|
38
|
-
[key: string]: R;
|
|
39
|
-
};
|
|
1
|
+
import { Equal, IRequest, IttyRouterOptions, IttyRouterType, Route, RouteHandler, UniversalRoute } from './IttyRouter';
|
|
2
|
+
export type ResponseHandler<ResponseType = any, RequestType = IRequest, Args extends any[] = any[]> = (response: ResponseType, request: RequestType, ...args: Args) => any;
|
|
3
|
+
export type ErrorHandler<ErrorType = Error, RequestType = IRequest, Args extends any[] = any[]> = (response: ErrorType, request: RequestType, ...args: Args) => any;
|
|
40
4
|
export type RouterType<R = Route, Args extends any[] = any[]> = {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
patch: R;
|
|
51
|
-
post: R;
|
|
52
|
-
put: R;
|
|
53
|
-
} & CustomRoutes<R> & Record<string, any>;
|
|
5
|
+
before?: RouteHandler[];
|
|
6
|
+
catch?: ErrorHandler;
|
|
7
|
+
finally?: ResponseHandler[];
|
|
8
|
+
} & IttyRouterType<R, Args>;
|
|
9
|
+
export type RouterOptions = {
|
|
10
|
+
before?: RouteHandler[];
|
|
11
|
+
catch?: ErrorHandler;
|
|
12
|
+
finally?: ResponseHandler[];
|
|
13
|
+
} & IttyRouterOptions;
|
|
54
14
|
export declare const Router: <RequestType = IRequest, Args extends any[] = any[], RouteType = Equal<RequestType, IRequest> extends true ? Route : UniversalRoute<RequestType, Args>>({ base, routes, ...other }?: RouterOptions) => RouterType<RouteType, Args>;
|
|
55
|
-
export {};
|
package/Router.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.Router=({base:e="",routes:r=[],...t}={})=>({__proto__:new Proxy({},{get:(t,o,
|
|
1
|
+
"use strict";exports.Router=({base:e="",routes:r=[],...t}={})=>({__proto__:new Proxy({},{get:(t,a,o,c)=>"handle"==a?o.fetch:(t,...l)=>r.push([a.toUpperCase?.(),RegExp(`^${(c=(e+t).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),l,c])&&o}),routes:r,...t,async fetch(e,...a){let o,c,l=new URL(e.url),p=e.query={__proto__:null};for(let[e,r]of l.searchParams)p[e]=p[e]?[].concat(p[e],r):r;e:try{for(let r of t.before||[])if(null!=(o=await r(e.proxy??e,...a)))break e;r:for(let[t,p,f,h]of r)if((t==e.method||"ALL"==t)&&(c=l.pathname.match(p))){e.params=c.groups||{},e.route=h;for(let r of f)if(null!=(o=await r(e.proxy??e,...a)))break r}}catch(r){if(!t.catch)throw r;o=await t.catch(r,e.proxy??e,...a)}try{for(let r of t.finally||[])o=await r(o,e.proxy??e,...a)??o}catch(r){if(!t.catch)throw r;o=await t.catch(r,e.proxy??e,...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","fetch","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","method","regex","pathname","params","groups","
|
|
1
|
+
{"version":3,"file":"Router.js","sources":["../src/src/Router.ts"],"sourcesContent":[null],"names":["base","routes","other","__proto__","Proxy","get","target","prop","receiver","path","fetch","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":"4BA6BsB,EAIlBA,OAAO,GAAIC,SAAS,MAAOC,GAAyB,CAAE,KAExD,CACEC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAsBC,IAC7C,UAARF,EAAmBC,EAASE,MAE1B,CAACC,KAAkBC,IACjBX,EAAOY,KACL,CACEN,EAAKO,gBACLC,OAAO,KAAKN,GAAQT,EAAOW,GACxBK,QAAQ,aAAc,OACtBA,QAAQ,oBAAqB,gBAC7BA,QAAQ,kBAAmB,uBAC3BA,QAAQ,MAAO,OACfA,QAAQ,WAAY,iBAEvBJ,EACAH,KAECD,IAEbP,YACGC,EACHe,YAAaC,KAAyBC,GACpC,IAAIC,EACAC,EACAC,EAAM,IAAIC,IAAIL,EAAQI,KACtBE,EAA6BN,EAAQM,MAAQ,CAAErB,UAAW,MAG9D,IAAK,IAAKsB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAE/DG,EAAG,IACD,IAAK,IAAIC,KAAW5B,EAAM6B,QAAU,GAClC,GAAqE,OAAhEX,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMU,EAGnFI,EAAO,IAAK,IAAKC,EAAQC,EAAOvB,EAAUH,KAASR,EACjD,IAAKiC,GAAUhB,EAAQgB,QAAoB,OAAVA,KAAqBb,EAAQC,EAAIc,SAASf,MAAMc,IAAS,CACxFjB,EAAQmB,OAAShB,EAAMiB,QAAU,CAAA,EACjCpB,EAAQP,MAAQF,EAEhB,IAAK,IAAIqB,KAAWlB,EAClB,GAAqE,OAAhEQ,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMc,CACpF,CACJ,CAAC,MAAOM,GACP,IAAKrC,EAAMsC,MAAO,MAAMD,EACxBnB,QAAiBlB,EAAMsC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAChE,CAED,IACE,IAAK,IAAIW,KAAW5B,EAAMuC,SAAW,GACnCrB,QAAiBU,EAAQV,EAAUF,EAAQc,OAASd,KAAYC,IAASC,CAC5E,CAAC,MAAMmB,GACN,IAAKrC,EAAMsC,MAAO,MAAMD,EACtBnB,QAAiBlB,EAAMsC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAClE,CAED,OAAOC,CACR"}
|
package/Router.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=({base:e="",routes:r=[],...
|
|
1
|
+
const e=({base:e="",routes:r=[],...a}={})=>({__proto__:new Proxy({},{get:(a,t,o,c)=>"handle"==t?o.fetch:(a,...l)=>r.push([t.toUpperCase?.(),RegExp(`^${(c=(e+a).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),l,c])&&o}),routes:r,...a,async fetch(e,...t){let o,c,l=new URL(e.url),p=e.query={__proto__:null};for(let[e,r]of l.searchParams)p[e]=p[e]?[].concat(p[e],r):r;e:try{for(let r of a.before||[])if(null!=(o=await r(e.proxy??e,...t)))break e;r:for(let[a,p,f,h]of r)if((a==e.method||"ALL"==a)&&(c=l.pathname.match(p))){e.params=c.groups||{},e.route=h;for(let r of f)if(null!=(o=await r(e.proxy??e,...t)))break r}}catch(r){if(!a.catch)throw r;o=await a.catch(r,e.proxy??e,...t)}try{for(let r of a.finally||[])o=await r(o,e.proxy??e,...t)??o}catch(r){if(!a.catch)throw r;o=await a.catch(r,e.proxy??e,...t)}return o}});export{e 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","fetch","route","handlers","push","toUpperCase","RegExp","replace","async","request","args","response","match","url","URL","query","k","v","searchParams","concat","method","regex","pathname","params","groups","
|
|
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","fetch","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":"AA6Ba,MAAAA,EAAS,EAIlBC,OAAO,GAAIC,SAAS,MAAOC,GAAyB,CAAE,KAExD,CACEC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAsBC,IAC7C,UAARF,EAAmBC,EAASE,MAE1B,CAACC,KAAkBC,IACjBX,EAAOY,KACL,CACEN,EAAKO,gBACLC,OAAO,KAAKN,GAAQT,EAAOW,GACxBK,QAAQ,aAAc,OACtBA,QAAQ,oBAAqB,gBAC7BA,QAAQ,kBAAmB,uBAC3BA,QAAQ,MAAO,OACfA,QAAQ,WAAY,iBAEvBJ,EACAH,KAECD,IAEbP,YACGC,EACHe,YAAaC,KAAyBC,GACpC,IAAIC,EACAC,EACAC,EAAM,IAAIC,IAAIL,EAAQI,KACtBE,EAA6BN,EAAQM,MAAQ,CAAErB,UAAW,MAG9D,IAAK,IAAKsB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAE/DG,EAAG,IACD,IAAK,IAAIC,KAAW5B,EAAM6B,QAAU,GAClC,GAAqE,OAAhEX,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMU,EAGnFI,EAAO,IAAK,IAAKC,EAAQC,EAAOvB,EAAUH,KAASR,EACjD,IAAKiC,GAAUhB,EAAQgB,QAAoB,OAAVA,KAAqBb,EAAQC,EAAIc,SAASf,MAAMc,IAAS,CACxFjB,EAAQmB,OAAShB,EAAMiB,QAAU,CAAA,EACjCpB,EAAQP,MAAQF,EAEhB,IAAK,IAAIqB,KAAWlB,EAClB,GAAqE,OAAhEQ,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMc,CACpF,CACJ,CAAC,MAAOM,GACP,IAAKrC,EAAMsC,MAAO,MAAMD,EACxBnB,QAAiBlB,EAAMsC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAChE,CAED,IACE,IAAK,IAAIW,KAAW5B,EAAMuC,SAAW,GACnCrB,QAAiBU,EAAQV,EAAUF,EAAQc,OAASd,KAAYC,IAASC,CAC5E,CAAC,MAAMmB,GACN,IAAKrC,EAAMsC,MAAO,MAAMD,EACtBnB,QAAiBlB,EAAMsC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAClE,CAED,OAAOC,CACR"}
|
package/createCors.d.ts
CHANGED
package/createResponse.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.createResponse=(e="text/plain; charset=utf-8",t)=>(s,{
|
|
1
|
+
"use strict";exports.createResponse=(e="text/plain; charset=utf-8",t)=>(s,{...n}={})=>{if(void 0===s||s instanceof Response)return s;const r=new Response(t?.(s)??s,n);return r.headers.set("content-type",e),r};
|
|
2
2
|
//# sourceMappingURL=createResponse.js.map
|
package/createResponse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createResponse.js","sources":["../src/src/createResponse.ts"],"sourcesContent":[null],"names":["format","transform","body","
|
|
1
|
+
{"version":3,"file":"createResponse.js","sources":["../src/src/createResponse.ts"],"sourcesContent":[null],"names":["format","transform","body","options","undefined","Response","response","headers","set"],"mappings":"oCASE,CACEA,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ"}
|
package/createResponse.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=(e="text/plain; charset=utf-8",t)=>(n,{
|
|
1
|
+
const e=(e="text/plain; charset=utf-8",t)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const o=new Response(t?.(n)??n,s);return o.headers.set("content-type",e),o};export{e as createResponse};
|
|
2
2
|
//# sourceMappingURL=createResponse.mjs.map
|
package/createResponse.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createResponse.mjs","sources":["../src/src/createResponse.ts"],"sourcesContent":[null],"names":["createResponse","format","transform","body","
|
|
1
|
+
{"version":3,"file":"createResponse.mjs","sources":["../src/src/createResponse.ts"],"sourcesContent":[null],"names":["createResponse","format","transform","body","options","undefined","Response","response","headers","set"],"mappings":"MAQcA,EACZ,CACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ"}
|
package/error.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const r=((r="text/plain; charset=utf-8",t)=>(e,{...n}={})=>{if(void 0===e||e instanceof Response)return e;const s=new Response(t?.(e)??e,n);return s.headers.set("content-type",r),s})("application/json; charset=utf-8",JSON.stringify),t=r=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[r]||"Unknown Error");exports.error=(e=500,n)=>{if(e instanceof Error){const{message:r,...s}=e;e=e.status||500,n={error:r||t(e),...s}}return n={status:e,..."object"==typeof n?n:{error:n||t(e)}},r(n,{status:e})};
|
|
2
2
|
//# sourceMappingURL=error.js.map
|
package/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sources":["../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts"],"sourcesContent":[null,null,null],"names":["json","format","transform","body","
|
|
1
|
+
{"version":3,"file":"error.js","sources":["../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts"],"sourcesContent":[null,null,null],"names":["json","format","transform","body","options","undefined","Response","response","headers","set","createResponse","JSON","stringify","getMessage","code","a","b","Error","message","err","status","error"],"mappings":"aAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAClB,kCACAC,KAAKC,WCUDC,EAAcC,IAAyB,CAC3C,IAAK,cACL,IAAK,eACL,IAAK,YACL,IAAK,YACL,IAAK,yBACJA,IAAS,+BAEyB,CAACC,EAAI,IAAKC,KAE7C,GAAID,aAAaE,MAAO,CACtB,MAAMC,QAAEA,KAAYC,GAAQJ,EAC5BA,EAAIA,EAAEK,QAAU,IAChBJ,EAAI,CACFK,MAAOH,GAAWL,EAAWE,MAC1BI,EAEN,CAOD,OALAH,EAAI,CACFI,OAAQL,KACS,iBAANC,EAAiBA,EAAI,CAAEK,MAAOL,GAAKH,EAAWE,KAGpDf,EAAKgB,EAAG,CAAEI,OAAQL,GAAI"}
|
package/error.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const t=((t="text/plain; charset=utf-8",e)=>(r,{...n}={})=>{if(void 0===r||r instanceof Response)return r;const o=new Response(e?.(r)??r,n);return o.headers.set("content-type",t),o})("application/json; charset=utf-8",JSON.stringify),e=t=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[t]||"Unknown Error"),r=(r=500,n)=>{if(r instanceof Error){const{message:t,...o}=r;r=r.status||500,n={error:t||e(r),...o}}return n={status:r,..."object"==typeof n?n:{error:n||e(r)}},t(n,{status:r})};export{r as error};
|
|
2
2
|
//# sourceMappingURL=error.mjs.map
|
package/error.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.mjs","sources":["../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts"],"sourcesContent":[null,null,null],"names":["json","format","transform","body","
|
|
1
|
+
{"version":3,"file":"error.mjs","sources":["../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts"],"sourcesContent":[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"],"mappings":"AAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAClB,kCACAC,KAAKC,WCUDC,EAAcC,IAAyB,CAC3C,IAAK,cACL,IAAK,eACL,IAAK,YACL,IAAK,YACL,IAAK,yBACJA,IAAS,iBAECC,EAAwB,CAACC,EAAI,IAAKC,KAE7C,GAAID,aAAaE,MAAO,CACtB,MAAMC,QAAEA,KAAYC,GAAQJ,EAC5BA,EAAIA,EAAEK,QAAU,IAChBJ,EAAI,CACFF,MAAOI,GAAWN,EAAWG,MAC1BI,EAEN,CAOD,OALAH,EAAI,CACFI,OAAQL,KACS,iBAANC,EAAiBA,EAAI,CAAEF,MAAOE,GAAKJ,EAAWG,KAGpDhB,EAAKiB,EAAG,CAAEI,OAAQL,GAAI"}
|
package/html.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const t=((t="text/plain; charset=utf-8",e)=>(s,{...n}={})=>{if(void 0===s||s instanceof Response)return s;const o=new Response(e?.(s)??s,n);return o.headers.set("content-type",t),o})("text/html");exports.html=t;
|
|
2
2
|
//# sourceMappingURL=html.js.map
|
package/html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sources":["../src/src/createResponse.ts","../src/src/html.ts"],"sourcesContent":[null,null],"names":["html","format","transform","body","
|
|
1
|
+
{"version":3,"file":"html.js","sources":["../src/src/createResponse.ts","../src/src/html.ts"],"sourcesContent":[null,null],"names":["html","format","transform","body","options","undefined","Response","response","headers","set","createResponse"],"mappings":"aAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAAe"}
|
package/html.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=((e="text/plain; charset=utf-8",t)=>(n,{
|
|
1
|
+
const e=((e="text/plain; charset=utf-8",t)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const o=new Response(t?.(n)??n,s);return o.headers.set("content-type",e),o})("text/html");export{e as html};
|
|
2
2
|
//# sourceMappingURL=html.mjs.map
|
package/html.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.mjs","sources":["../src/src/createResponse.ts","../src/src/html.ts"],"sourcesContent":[null,null],"names":["html","format","transform","body","
|
|
1
|
+
{"version":3,"file":"html.mjs","sources":["../src/src/createResponse.ts","../src/src/html.ts"],"sourcesContent":[null,null],"names":["html","format","transform","body","options","undefined","Response","response","headers","set","createResponse"],"mappings":"AAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAAe"}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";const e=({base:e="",routes:t=[],...o}={})=>({__proto__:new Proxy({},{get:(o,r,s,a)=>"handle"==r?s.fetch:(o,...n)=>t.push([r.toUpperCase?.(),RegExp(`^${(a=(e+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...o,async fetch(e,...r){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 o.before||[])if(null!=(s=await t(e.proxy??e,...r)))break e;t:for(let[o,c,p,l]of t)if((o==e.method||"ALL"==o)&&(a=n.pathname.match(c))){e.params=a.groups||{},e.route=l;for(let t of p)if(null!=(s=await t(e.proxy??e,...r)))break t}}catch(t){if(!o.catch)throw t;s=await o.catch(t,e.proxy??e,...r)}try{for(let t of o.finally||[])s=await t(s,e.proxy??e,...r)??s}catch(t){if(!o.catch)throw t;s=await o.catch(t,e.proxy??e,...r)}return s}}),t=(e="text/plain; charset=utf-8",t)=>(o,{...r}={})=>{if(void 0===o||o instanceof Response)return o;const s=new Response(t?.(o)??o,r);return s.headers.set("content-type",e),s},o=t("application/json; charset=utf-8",JSON.stringify),r=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:o,...s}=e;e=e.status||500,t={error:o||r(e),...s}}return t={status:e,..."object"==typeof t?t:{error:t||r(e)}},o(t,{status:e})},a=e=>{e.proxy=new Proxy(e.proxy||e,{get:(t,o)=>void 0!==t[o]?t[o].bind?.(e)||t[o]:t?.params?.[o]})};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),p=t("text/html"),l=t("image/jpeg"),i=t("image/png"),u=t("image/webp");exports.AutoRouter=({format:t=o,missing:r=(()=>s(404)),finally:n=[],before:c=[],...p}={})=>e({before:[a,...c],catch:s,finally:[(e,...t)=>e??r(e,...t),t,...n],...p}),exports.IttyRouter=({base:e="",routes:t=[],...o}={})=>({__proto__:new Proxy({},{get:(o,r,s,a)=>(o,...n)=>t.push([r.toUpperCase?.(),RegExp(`^${(a=(e+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...o,async fetch(e,...o){let r,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,p,l]of t)if((n==e.method||"ALL"==n)&&(s=a.pathname.match(c))){e.params=s.groups||{},e.route=l;for(let t of p)if(null!=(r=await t(e.proxy??e,...o)))return r}}}),exports.Router=e,exports.StatusError=n,exports.createCors=(e={})=>{const{origins:t=["*"],maxAge:o,methods:r=["GET"],headers:s={}}=e;let a;const n="function"==typeof t?t:e=>t.includes(e)||t.includes("*"),c={"content-type":"application/json","Access-Control-Allow-Methods":r.join(", "),...s};o&&(c["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:t,status:o,body:r}=e;return[101,301,302,308].includes(o)||t.get("access-control-allow-origin")?e:new Response(r,{status:o,headers:{...Object.fromEntries(t),...c,...a,"content-type":t.get("content-type")}})},preflight:e=>{const t=[...new Set(["OPTIONS",...r])],o=e.headers.get("origin")||"";if(a=n(o)&&{"Access-Control-Allow-Origin":o},"OPTIONS"===e.method){const o={...c,"Access-Control-Allow-Methods":t.join(", "),"Access-Control-Allow-Headers":e.headers.get("Access-Control-Request-Headers"),...a};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:t.join(", ")}})}}}},exports.createResponse=t,exports.error=s,exports.html=p,exports.jpeg=l,exports.json=o,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=await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text()))},exports.withCookies=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,o])=>o?(e[t]=o,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/IttyRouter.ts","../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/createCors.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","fetch","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","origins","maxAge","methods","allowOrigin","isAllowOrigin","origin","includes","rHeaders","join","corsify","fromEntries","preflight","useMethods","Set","reqHeaders","Allow","content","clone","formData","cookies","split","map","p","reduce"],"mappings":"aA0Ea,MC7CAA,EAAS,EAIlBC,OAAO,GAAIC,SAAS,MAAOC,GAAyB,CAAE,KAExD,CACEC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAsBC,IAC7C,UAARF,EAAmBC,EAASE,MAE1B,CAACC,KAAkBC,IACjBX,EAAOY,KACL,CACEN,EAAKO,gBACLC,OAAO,KAAKN,GAAQT,EAAOW,GACxBK,QAAQ,aAAc,OACtBA,QAAQ,oBAAqB,gBAC7BA,QAAQ,kBAAmB,uBAC3BA,QAAQ,MAAO,OACfA,QAAQ,WAAY,iBAEvBJ,EACAH,KAECD,IAEbP,YACGC,EACHe,YAAaC,KAAyBC,GACpC,IAAIC,EACAC,EACAC,EAAM,IAAIC,IAAIL,EAAQI,KACtBE,EAA6BN,EAAQM,MAAQ,CAAErB,UAAW,MAG9D,IAAK,IAAKsB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAE/DG,EAAG,IACD,IAAK,IAAIC,KAAW5B,EAAM6B,QAAU,GAClC,GAAqE,OAAhEX,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMU,EAGnFI,EAAO,IAAK,IAAKC,EAAQC,EAAOvB,EAAUH,KAASR,EACjD,IAAKiC,GAAUhB,EAAQgB,QAAoB,OAAVA,KAAqBb,EAAQC,EAAIc,SAASf,MAAMc,IAAS,CACxFjB,EAAQmB,OAAShB,EAAMiB,QAAU,CAAA,EACjCpB,EAAQP,MAAQF,EAEhB,IAAK,IAAIqB,KAAWlB,EAClB,GAAqE,OAAhEQ,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,MAAMc,CACpF,CACJ,CAAC,MAAOM,GACP,IAAKrC,EAAMsC,MAAO,MAAMD,EACxBnB,QAAiBlB,EAAMsC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAChE,CAED,IACE,IAAK,IAAIW,KAAW5B,EAAMuC,SAAW,GACnCrB,QAAiBU,EAAQV,EAAUF,EAAQc,OAASd,KAAYC,IAASC,CAC5E,CAAC,MAAMmB,GACN,IAAKrC,EAAMsC,MAAO,MAAMD,EACtBnB,QAAiBlB,EAAMsC,MAAMD,EAAKrB,EAAQc,OAASd,KAAYC,EAClE,CAED,OAAOC,CACR,ICxFSsB,EACZ,CACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMzB,EAAW,IAAI4B,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADA1B,EAAS6B,QAAQC,IAAI,eAAgBP,GAC9BvB,CAAQ,EChBN+B,EAAOT,EAClB,kCACAU,KAAKC,WCUDC,EAAcC,IAAyB,CAC3C,IAAK,cACL,IAAK,eACL,IAAK,YACL,IAAK,YACL,IAAK,yBACJA,IAAS,iBAECC,EAAwB,CAACC,EAAI,IAAKC,KAE7C,GAAID,aAAaE,MAAO,CACtB,MAAMC,QAAEA,KAAYrB,GAAQkB,EAC5BA,EAAIA,EAAEI,QAAU,IAChBH,EAAI,CACFF,MAAOI,GAAWN,EAAWG,MAC1BlB,EAEN,CAOD,OALAmB,EAAI,CACFG,OAAQJ,KACS,iBAANC,EAAiBA,EAAI,CAAEF,MAAOE,GAAKJ,EAAWG,KAGpDN,EAAKO,EAAG,CAAEG,OAAQJ,GAAI,ECpClBK,EAAc5C,IACzBA,EAAQc,MAAQ,IAAI5B,MAAMc,EAAQc,OAASd,EAAS,CAClDb,IAAK,CAAC0D,EAAKxD,SAAuBwC,IAAdgB,EAAIxD,GACNwD,EAAIxD,GAAMyD,OAAO9C,IAAY6C,EAAIxD,GACjCwD,GAAK1B,SAAS9B,IAChC,ECFE,MAAO0D,UAAoBN,MAC/BE,OAGAK,YAAYL,EAAS,IAAKhB,GACxBsB,MAAsB,iBAATtB,EAAoBA,EAAKW,MAAQX,GAC9B,iBAATA,GAAqBuB,OAAOC,OAAOC,KAAMzB,GAChDyB,KAAKT,OAASA,CACf,QCXUU,EAAO7B,EAClB,4BACA8B,QCFWC,EAAO/B,EAAe,aCAtBgC,EAAOhC,EAAe,cCAtBiC,EAAMjC,EAAe,aCArBkC,EAAOlC,EAAe,iCCUT,EACxBC,SAASQ,EACT0B,UAAU,KAAMrB,EAAM,MACtBf,QAASqC,EAAI,GACb/C,SAAS,MACNe,GAA+B,CAAE,IACjC/C,EAAO,CACVgC,OAAQ,CACN+B,KACG/B,GAELS,MAAOgB,EACPf,QAAS,CACP,CAACsC,KAAW5D,IAAS4D,GAAKF,EAAQE,KAAM5D,GACxCwB,KACGmC,MAEFhC,uBZ6CqB,EAItB9C,OAAO,GAAIC,SAAS,MAAOC,GAA6B,CAAE,KAE5D,CACEC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAsBC,IAErD,CAACE,KAAkBC,IACjBX,EAAOY,KACL,CACEN,EAAKO,gBACLC,OAAO,KAAKN,GAAQT,EAAOW,GACxBK,QAAQ,aAAc,OACtBA,QAAQ,oBAAqB,gBAC7BA,QAAQ,kBAAmB,uBAC3BA,QAAQ,MAAO,OACfA,QAAQ,WAAY,iBAEvBJ,EACAH,KAECD,IAEXP,YACGC,EACHe,YAAaC,KAAyBC,GACpC,IAAIC,EACAC,EACAC,EAAM,IAAIC,IAAIL,EAAQI,KACtBE,EAA6BN,EAAQM,MAAQ,CAAErB,UAAW,MAG9D,IAAK,IAAKsB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAG/D,IAAK,IAAKQ,EAAQC,EAAOvB,EAAUH,KAASR,EAC1C,IAAKiC,GAAUhB,EAAQgB,QAAoB,OAAVA,KAAqBb,EAAQC,EAAIc,SAASf,MAAMc,IAAS,CACxFjB,EAAQmB,OAAShB,EAAMiB,QAAU,CAAA,EACjCpB,EAAQP,MAAQF,EAChB,IAAK,IAAIqB,KAAWlB,EAClB,GAAqE,OAAhEQ,QAAiBU,EAAQZ,EAAQc,OAASd,KAAYC,IAAgB,OAAOC,CACrF,CACJ,8Da/GqB,CAAC0B,EAAuB,MAEhD,MAAMkC,QAAEA,EAAU,CAAC,KAAIC,OAAEA,EAAMC,QAAEA,EAAU,CAAC,OAAMjC,QAAEA,EAAU,CAAE,GAAKH,EAErE,IAAIqC,EACJ,MAAMC,EAAmC,mBAAZJ,EACzBA,EACCK,GAAoBL,EAAQM,SAASD,IAAWL,EAAQM,SAAS,KAGhEC,EAAW,CACf,eAAgB,mBAChB,+BAAgCL,EAAQM,KAAK,SAC1CvC,GAIDgC,IAAQM,EAAS,0BAA4BN,GA+DjD,MAAO,CAAEQ,QA5BQrE,IACf,IAAKA,EACH,MAAM,IAAIuC,MACR,qEAGJ,MAAMV,QAAEA,EAAOY,OAAEA,EAAMhB,KAAEA,GAASzB,EAGlC,MACE,CAAC,IAAK,IAAK,IAAK,KAAKkE,SAASzB,IAC9BZ,EAAQ5C,IAAI,+BAELe,EAGF,IAAI4B,SAASH,EAAM,CACxBgB,SACAZ,QAAS,IACJmB,OAAOsB,YAAYzC,MACnBsC,KACAJ,EACH,eAAgBlC,EAAQ5C,IAAI,kBAE9B,EAIcsF,UA5DCZ,IAEjB,MAAMa,EAAa,IAAI,IAAIC,IAAI,CAAC,aAAcX,KACxCG,EAASN,EAAE9B,QAAQ5C,IAAI,WAAa,GAM1C,GAHA8E,EAAcC,EAAcC,IAAW,CAAE,8BAA+BA,GAGvD,YAAbN,EAAE7C,OAAsB,CAC1B,MAAM4D,EAAa,IACdP,EACH,+BAAgCK,EAAWJ,KAAK,MAChD,+BAAgCT,EAAE9B,QAAQ5C,IACxC,qCAEC8E,GAIL,OAAO,IAAInC,SAAS,KAAM,CACxBC,QACE8B,EAAE9B,QAAQ5C,IAAI,WACd0E,EAAE9B,QAAQ5C,IAAI,kCACd0E,EAAE9B,QAAQ5C,IAAI,kCACVyF,EACA,CAAEC,MAAOH,EAAWJ,KAAK,QAElC,GAgC0B,qHC1FT,CAAC3B,EAAgBf,IACrC,IAAIE,SAAS,KAAM,IAAKF,EAASe,6DCMR5C,MAAOC,IAChCA,EAAQ8E,cAAgB9E,EAAQ+E,QAAQ9C,OACbX,OAAM,IAAMtB,EAAQ+E,QAAQC,aAC5B1D,OAAM,IAAMtB,EAAQqD,QAAO,sBCH5BQ,IAC1BA,EAAEoB,SAAWpB,EAAE9B,QAAQ5C,IAAI,WAAa,IACrC+F,MAAM,QACNC,KAAKC,GAAsBA,EAAEF,MAAM,WACnCG,QAAO,CAAC9C,GAAkBhC,EAAGC,KAAgBA,GAAM+B,EAAEhC,GAAKC,EAAI+B,GAAKA,GAAI,CAAE,EAAC"}
|
package/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=({base:e="",routes:t=[],...o}={})=>({__proto__:new Proxy({},{get:(o,s,
|
|
1
|
+
const e=({base:e="",routes:t=[],...o}={})=>({__proto__:new Proxy({},{get:(o,r,s,a)=>(o,...n)=>t.push([r.toUpperCase?.(),RegExp(`^${(a=(e+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...o,async fetch(e,...o){let r,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,i]of t)if((n==e.method||"ALL"==n)&&(s=a.pathname.match(c))){e.params=s.groups||{},e.route=i;for(let t of l)if(null!=(r=await t(e.proxy??e,...o)))return r}}}),t=({base:e="",routes:t=[],...o}={})=>({__proto__:new Proxy({},{get:(o,r,s,a)=>"handle"==r?s.fetch:(o,...n)=>t.push([r.toUpperCase?.(),RegExp(`^${(a=(e+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...o,async fetch(e,...r){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 o.before||[])if(null!=(s=await t(e.proxy??e,...r)))break e;t:for(let[o,c,l,i]of t)if((o==e.method||"ALL"==o)&&(a=n.pathname.match(c))){e.params=a.groups||{},e.route=i;for(let t of l)if(null!=(s=await t(e.proxy??e,...r)))break t}}catch(t){if(!o.catch)throw t;s=await o.catch(t,e.proxy??e,...r)}try{for(let t of o.finally||[])s=await t(s,e.proxy??e,...r)??s}catch(t){if(!o.catch)throw t;s=await o.catch(t,e.proxy??e,...r)}return s}}),o=(e="text/plain; charset=utf-8",t)=>(o,{...r}={})=>{if(void 0===o||o instanceof Response)return o;const s=new Response(t?.(o)??o,r);return s.headers.set("content-type",e),s},r=o("application/json; charset=utf-8",JSON.stringify),s=e=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[e]||"Unknown Error"),a=(e=500,t)=>{if(e instanceof Error){const{message:o,...r}=e;e=e.status||500,t={error:o||s(e),...r}}return t={status:e,..."object"==typeof t?t:{error:t||s(e)}},r(t,{status:e})},n=e=>{e.proxy=new Proxy(e.proxy||e,{get:(t,o)=>void 0!==t[o]?t[o].bind?.(e)||t[o]:t?.params?.[o]})},c=({format:e=r,missing:o=(()=>a(404)),finally:s=[],before:c=[],...l}={})=>t({before:[n,...c],catch:a,finally:[(e,...t)=>e??o(e,...t),e,...s],...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=o("text/plain; charset=utf-8",String),f=o("text/html"),u=o("image/jpeg"),h=o("image/png"),g=o("image/webp"),d=async e=>{e.content=await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text()))},w=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,o])=>o?(e[t]=o,e):e),{})},y=(e={})=>{const{origins:t=["*"],maxAge:o,methods:r=["GET"],headers:s={}}=e;let a;const n="function"==typeof t?t:e=>t.includes(e)||t.includes("*"),c={"content-type":"application/json","Access-Control-Allow-Methods":r.join(", "),...s};o&&(c["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:t,status:o,body:r}=e;return[101,301,302,308].includes(o)||t.get("access-control-allow-origin")?e:new Response(r,{status:o,headers:{...Object.fromEntries(t),...c,...a,"content-type":t.get("content-type")}})},preflight:e=>{const t=[...new Set(["OPTIONS",...r])],o=e.headers.get("origin")||"";if(a=n(o)&&{"Access-Control-Allow-Origin":o},"OPTIONS"===e.method){const o={...c,"Access-Control-Allow-Methods":t.join(", "),"Access-Control-Allow-Headers":e.headers.get("Access-Control-Request-Headers"),...a};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:t.join(", ")}})}}}};export{c as AutoRouter,e as IttyRouter,t as Router,l as StatusError,y as createCors,o as createResponse,a as error,f as html,u as jpeg,r 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/
|
|
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/createCors.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","fetch","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","createCors","origins","maxAge","methods","allowOrigin","isAllowOrigin","origin","includes","rHeaders","join","corsify","fromEntries","preflight","useMethods","Set","reqHeaders","Allow"],"mappings":"AA0Ea,MAAAA,EAAa,EAItBC,OAAO,GAAIC,SAAS,MAAOC,GAA6B,CAAE,KAE5D,CACEC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAsBC,IAErD,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,iBAEvBJ,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,IC5FQgB,EAAS,EAIlBnC,OAAO,GAAIC,SAAS,MAAOC,GAAyB,CAAE,KAExD,CACEC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAsBC,IAC7C,UAARF,EAAmBC,EAAS4B,MAE1B,CAAC1B,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,iBAEvBJ,EACAF,KAECD,IAEbP,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/DY,EAAG,IACD,IAAK,IAAIJ,KAAW/B,EAAMoC,QAAU,GAClC,GAAqE,OAAhEnB,QAAiBc,EAAQhB,EAAQiB,OAASjB,KAAYC,IAAgB,MAAMmB,EAGnFE,EAAO,IAAK,IAAKX,EAAQC,EAAOlB,EAAUF,KAASR,EACjD,IAAK2B,GAAUX,EAAQW,QAAoB,OAAVA,KAAqBR,EAAQC,EAAIS,SAASV,MAAMS,IAAS,CACxFZ,EAAQc,OAASX,EAAMY,QAAU,CAAA,EACjCf,EAAQP,MAAQD,EAEhB,IAAK,IAAIwB,KAAWtB,EAClB,GAAqE,OAAhEQ,QAAiBc,EAAQhB,EAAQiB,OAASjB,KAAYC,IAAgB,MAAMqB,CACpF,CACJ,CAAC,MAAOC,GACP,IAAKtC,EAAMuC,MAAO,MAAMD,EACxBrB,QAAiBjB,EAAMuC,MAAMD,EAAKvB,EAAQiB,OAASjB,KAAYC,EAChE,CAED,IACE,IAAK,IAAIe,KAAW/B,EAAMwC,SAAW,GACnCvB,QAAiBc,EAAQd,EAAUF,EAAQiB,OAASjB,KAAYC,IAASC,CAC5E,CAAC,MAAMqB,GACN,IAAKtC,EAAMuC,MAAO,MAAMD,EACtBrB,QAAiBjB,EAAMuC,MAAMD,EAAKvB,EAAQiB,OAASjB,KAAYC,EAClE,CAED,OAAOC,CACR,ICxFSwB,EACZ,CACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAM3B,EAAW,IAAI8B,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADA5B,EAAS+B,QAAQC,IAAI,eAAgBP,GAC9BzB,CAAQ,EChBNiC,EAAOT,EAClB,kCACAU,KAAKC,WCUDC,EAAcC,IAAyB,CAC3C,IAAK,cACL,IAAK,eACL,IAAK,YACL,IAAK,YACL,IAAK,yBACJA,IAAS,iBAECC,EAAwB,CAACC,EAAI,IAAKC,KAE7C,GAAID,aAAaE,MAAO,CACtB,MAAMC,QAAEA,KAAYrB,GAAQkB,EAC5BA,EAAIA,EAAEI,QAAU,IAChBH,EAAI,CACFF,MAAOI,GAAWN,EAAWG,MAC1BlB,EAEN,CAOD,OALAmB,EAAI,CACFG,OAAQJ,KACS,iBAANC,EAAiBA,EAAI,CAAEF,MAAOE,GAAKJ,EAAWG,KAGpDN,EAAKO,EAAG,CAAEG,OAAQJ,GAAI,ECpClBK,EAAc9C,IACzBA,EAAQiB,MAAQ,IAAI9B,MAAMa,EAAQiB,OAASjB,EAAS,CAClDZ,IAAK,CAAC2D,EAAKzD,SAAuByC,IAAdgB,EAAIzD,GACNyD,EAAIzD,GAAM0D,OAAOhD,IAAY+C,EAAIzD,GACjCyD,GAAKjC,SAASxB,IAChC,ECKS2D,EAAa,EACxBtB,SAASQ,EACTe,UAAU,KAAMV,EAAM,MACtBf,QAAS0B,EAAI,GACb9B,SAAS,MACNS,GAA+B,CAAE,IACjCZ,EAAO,CACVG,OAAQ,CACNyB,KACGzB,GAELG,MAAOgB,EACPf,QAAS,CACP,CAAC2B,KAAWnD,IAASmD,GAAKF,EAAQE,KAAMnD,GACxC0B,KACGwB,MAEFrB,ICxBC,MAAOuB,UAAoBV,MAC/BE,OAGAS,YAAYT,EAAS,IAAKhB,GACxB0B,MAAsB,iBAAT1B,EAAoBA,EAAKW,MAAQX,GAC9B,iBAATA,GAAqB2B,OAAOC,OAAOC,KAAM7B,GAChD6B,KAAKb,OAASA,CACf,QCbUA,EAAS,CAACA,EAAgBf,IACrC,IAAIE,SAAS,KAAM,IAAKF,EAASe,WCCtBc,EAAOjC,EAClB,4BACAkC,QCFWC,EAAOnC,EAAe,aCAtBoC,EAAOpC,EAAe,cCAtBqC,EAAMrC,EAAe,aCArBsC,EAAOtC,EAAe,cCKtBuC,EAAclE,MAAOC,IAChCA,EAAQkE,cAAgBlE,EAAQmE,QAAQhC,OACbX,OAAM,IAAMxB,EAAQmE,QAAQC,aAC5B5C,OAAM,IAAMxB,EAAQ2D,QAAO,ECH3CU,EAAejB,IAC1BA,EAAEkB,SAAWlB,EAAEnB,QAAQ7C,IAAI,WAAa,IACrCmF,MAAM,QACNC,KAAKC,GAAsBA,EAAEF,MAAM,WACnCG,QAAO,CAACjC,GAAkBlC,EAAGC,KAAgBA,GAAMiC,EAAElC,GAAKC,EAAIiC,GAAKA,GAAI,CAAE,EAAC,ECDlEkC,EAAa,CAAC7C,EAAuB,MAEhD,MAAM8C,QAAEA,EAAU,CAAC,KAAIC,OAAEA,EAAMC,QAAEA,EAAU,CAAC,OAAM7C,QAAEA,EAAU,CAAE,GAAKH,EAErE,IAAIiD,EACJ,MAAMC,EAAmC,mBAAZJ,EACzBA,EACCK,GAAoBL,EAAQM,SAASD,IAAWL,EAAQM,SAAS,KAGhEC,EAAW,CACf,eAAgB,mBAChB,+BAAgCL,EAAQM,KAAK,SAC1CnD,GAID4C,IAAQM,EAAS,0BAA4BN,GA+DjD,MAAO,CAAEQ,QA5BQnF,IACf,IAAKA,EACH,MAAM,IAAIyC,MACR,qEAGJ,MAAMV,QAAEA,EAAOY,OAAEA,EAAMhB,KAAEA,GAAS3B,EAGlC,MACE,CAAC,IAAK,IAAK,IAAK,KAAKgF,SAASrC,IAC9BZ,EAAQ7C,IAAI,+BAELc,EAGF,IAAI8B,SAASH,EAAM,CACxBgB,SACAZ,QAAS,IACJuB,OAAO8B,YAAYrD,MACnBkD,KACAJ,EACH,eAAgB9C,EAAQ7C,IAAI,kBAE9B,EAIcmG,UA5DCnC,IAEjB,MAAMoC,EAAa,IAAI,IAAIC,IAAI,CAAC,aAAcX,KACxCG,EAAS7B,EAAEnB,QAAQ7C,IAAI,WAAa,GAM1C,GAHA2F,EAAcC,EAAcC,IAAW,CAAE,8BAA+BA,GAGvD,YAAb7B,EAAEzC,OAAsB,CAC1B,MAAM+E,EAAa,IACdP,EACH,+BAAgCK,EAAWJ,KAAK,MAChD,+BAAgChC,EAAEnB,QAAQ7C,IACxC,qCAEC2F,GAIL,OAAO,IAAI/C,SAAS,KAAM,CACxBC,QACEmB,EAAEnB,QAAQ7C,IAAI,WACdgE,EAAEnB,QAAQ7C,IAAI,kCACdgE,EAAEnB,QAAQ7C,IAAI,kCACVsG,EACA,CAAEC,MAAOH,EAAWJ,KAAK,QAElC,GAgC0B"}
|
package/jpeg.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=((e="text/plain; charset=utf-8",t)=>(s,{
|
|
1
|
+
"use strict";const e=((e="text/plain; charset=utf-8",t)=>(s,{...n}={})=>{if(void 0===s||s instanceof Response)return s;const o=new Response(t?.(s)??s,n);return o.headers.set("content-type",e),o})("image/jpeg");exports.jpeg=e;
|
|
2
2
|
//# sourceMappingURL=jpeg.js.map
|
package/jpeg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jpeg.js","sources":["../src/src/createResponse.ts","../src/src/jpeg.ts"],"sourcesContent":[null,null],"names":["jpeg","format","transform","body","
|
|
1
|
+
{"version":3,"file":"jpeg.js","sources":["../src/src/createResponse.ts","../src/src/jpeg.ts"],"sourcesContent":[null,null],"names":["jpeg","format","transform","body","options","undefined","Response","response","headers","set","createResponse"],"mappings":"aAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAAe"}
|
package/jpeg.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=((e="text/plain; charset=utf-8",t)=>(n,{
|
|
1
|
+
const e=((e="text/plain; charset=utf-8",t)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const o=new Response(t?.(n)??n,s);return o.headers.set("content-type",e),o})("image/jpeg");export{e as jpeg};
|
|
2
2
|
//# sourceMappingURL=jpeg.mjs.map
|
package/jpeg.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jpeg.mjs","sources":["../src/src/createResponse.ts","../src/src/jpeg.ts"],"sourcesContent":[null,null],"names":["jpeg","format","transform","body","
|
|
1
|
+
{"version":3,"file":"jpeg.mjs","sources":["../src/src/createResponse.ts","../src/src/jpeg.ts"],"sourcesContent":[null,null],"names":["jpeg","format","transform","body","options","undefined","Response","response","headers","set","createResponse"],"mappings":"AAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAAe"}
|
package/json.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const t=((t="text/plain; charset=utf-8",e)=>(s,{...n}={})=>{if(void 0===s||s instanceof Response)return s;const o=new Response(e?.(s)??s,n);return o.headers.set("content-type",t),o})("application/json; charset=utf-8",JSON.stringify);exports.json=t;
|
|
2
2
|
//# sourceMappingURL=json.js.map
|
package/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sources":["../src/src/createResponse.ts","../src/src/json.ts"],"sourcesContent":[null,null],"names":["json","format","transform","body","
|
|
1
|
+
{"version":3,"file":"json.js","sources":["../src/src/createResponse.ts","../src/src/json.ts"],"sourcesContent":[null,null],"names":["json","format","transform","body","options","undefined","Response","response","headers","set","createResponse","JSON","stringify"],"mappings":"aAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAClB,kCACAC,KAAKC"}
|
package/json.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const t=((t="text/plain; charset=utf-8",e)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const o=new Response(e?.(n)??n,s);return o.headers.set("content-type",t),o})("application/json; charset=utf-8",JSON.stringify);export{t as json};
|
|
2
2
|
//# sourceMappingURL=json.mjs.map
|
package/json.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.mjs","sources":["../src/src/createResponse.ts","../src/src/json.ts"],"sourcesContent":[null,null],"names":["json","format","transform","body","
|
|
1
|
+
{"version":3,"file":"json.mjs","sources":["../src/src/createResponse.ts","../src/src/json.ts"],"sourcesContent":[null,null],"names":["json","format","transform","body","options","undefined","Response","response","headers","set","createResponse","JSON","stringify"],"mappings":"AAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAClB,kCACAC,KAAKC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "itty-router",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0-next.1",
|
|
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",
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
"require": "./index.js",
|
|
12
12
|
"types": "./index.d.ts"
|
|
13
13
|
},
|
|
14
|
+
"./AutoRouter": {
|
|
15
|
+
"import": "./AutoRouter.mjs",
|
|
16
|
+
"require": "./AutoRouter.js",
|
|
17
|
+
"types": "./AutoRouter.d.ts"
|
|
18
|
+
},
|
|
14
19
|
"./createCors": {
|
|
15
20
|
"import": "./createCors.mjs",
|
|
16
21
|
"require": "./createCors.js",
|
|
@@ -31,6 +36,11 @@
|
|
|
31
36
|
"require": "./html.js",
|
|
32
37
|
"types": "./html.d.ts"
|
|
33
38
|
},
|
|
39
|
+
"./IttyRouter": {
|
|
40
|
+
"import": "./IttyRouter.mjs",
|
|
41
|
+
"require": "./IttyRouter.js",
|
|
42
|
+
"types": "./IttyRouter.d.ts"
|
|
43
|
+
},
|
|
34
44
|
"./jpeg": {
|
|
35
45
|
"import": "./jpeg.mjs",
|
|
36
46
|
"require": "./jpeg.js",
|
package/png.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=((e="text/plain; charset=utf-8",t)=>(
|
|
1
|
+
"use strict";const e=((e="text/plain; charset=utf-8",t)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const o=new Response(t?.(n)??n,s);return o.headers.set("content-type",e),o})("image/png");exports.png=e;
|
|
2
2
|
//# sourceMappingURL=png.js.map
|
package/png.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"png.js","sources":["../src/src/createResponse.ts","../src/src/png.ts"],"sourcesContent":[null,null],"names":["png","format","transform","body","
|
|
1
|
+
{"version":3,"file":"png.js","sources":["../src/src/createResponse.ts","../src/src/png.ts"],"sourcesContent":[null,null],"names":["png","format","transform","body","options","undefined","Response","response","headers","set","createResponse"],"mappings":"aAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBAG,CAAe"}
|
package/png.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=((e="text/plain; charset=utf-8",t)=>(n,{
|
|
1
|
+
const e=((e="text/plain; charset=utf-8",t)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const o=new Response(t?.(n)??n,s);return o.headers.set("content-type",e),o})("image/png");export{e as png};
|
|
2
2
|
//# sourceMappingURL=png.mjs.map
|
package/png.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"png.mjs","sources":["../src/src/createResponse.ts","../src/src/png.ts"],"sourcesContent":[null,null],"names":["png","format","transform","body","
|
|
1
|
+
{"version":3,"file":"png.mjs","sources":["../src/src/createResponse.ts","../src/src/png.ts"],"sourcesContent":[null,null],"names":["png","format","transform","body","options","undefined","Response","response","headers","set","createResponse"],"mappings":"AAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBAG,CAAe"}
|
package/text.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const t=((t="text/plain; charset=utf-8",e)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const r=new Response(e?.(n)??n,s);return r.headers.set("content-type",t),r})("text/plain; charset=utf-8",String);exports.text=t;
|
|
2
2
|
//# sourceMappingURL=text.js.map
|
package/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sources":["../src/src/createResponse.ts","../src/src/text.ts"],"sourcesContent":[null,null],"names":["text","format","transform","body","
|
|
1
|
+
{"version":3,"file":"text.js","sources":["../src/src/createResponse.ts","../src/src/text.ts"],"sourcesContent":[null,null],"names":["text","format","transform","body","options","undefined","Response","response","headers","set","createResponse","String"],"mappings":"aAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAClB,4BACAC"}
|
package/text.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const t=((t="text/plain; charset=utf-8",e)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const r=new Response(e?.(n)??n,s);return r.headers.set("content-type",t),r})("text/plain; charset=utf-8",String);export{t as text};
|
|
2
2
|
//# sourceMappingURL=text.mjs.map
|
package/text.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.mjs","sources":["../src/src/createResponse.ts","../src/src/text.ts"],"sourcesContent":[null,null],"names":["text","format","transform","body","
|
|
1
|
+
{"version":3,"file":"text.mjs","sources":["../src/src/createResponse.ts","../src/src/text.ts"],"sourcesContent":[null,null],"names":["text","format","transform","body","options","undefined","Response","response","headers","set","createResponse","String"],"mappings":"AAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAClB,4BACAC"}
|
package/webp.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=((e="text/plain; charset=utf-8",t)=>(s,{
|
|
1
|
+
"use strict";const e=((e="text/plain; charset=utf-8",t)=>(s,{...n}={})=>{if(void 0===s||s instanceof Response)return s;const o=new Response(t?.(s)??s,n);return o.headers.set("content-type",e),o})("image/webp");exports.webp=e;
|
|
2
2
|
//# sourceMappingURL=webp.js.map
|
package/webp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webp.js","sources":["../src/src/createResponse.ts","../src/src/webp.ts"],"sourcesContent":[null,null],"names":["webp","format","transform","body","
|
|
1
|
+
{"version":3,"file":"webp.js","sources":["../src/src/createResponse.ts","../src/src/webp.ts"],"sourcesContent":[null,null],"names":["webp","format","transform","body","options","undefined","Response","response","headers","set","createResponse"],"mappings":"aAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAAe"}
|
package/webp.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=((e="text/plain; charset=utf-8",t)=>(n,{
|
|
1
|
+
const e=((e="text/plain; charset=utf-8",t)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const o=new Response(t?.(n)??n,s);return o.headers.set("content-type",e),o})("image/webp");export{e as webp};
|
|
2
2
|
//# sourceMappingURL=webp.mjs.map
|
package/webp.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webp.mjs","sources":["../src/src/createResponse.ts","../src/src/webp.ts"],"sourcesContent":[null,null],"names":["webp","format","transform","body","
|
|
1
|
+
{"version":3,"file":"webp.mjs","sources":["../src/src/createResponse.ts","../src/src/webp.ts"],"sourcesContent":[null,null],"names":["webp","format","transform","body","options","undefined","Response","response","headers","set","createResponse"],"mappings":"AAQQ,MCNKA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWC,GAAY,MACtB,QAAaC,IAATF,GAAsBA,aAAgBG,SAAU,OAAOH,EAE3D,MAAMI,EAAW,IAAID,SAASJ,IAAYC,IAASA,EAAMC,GAEzD,OADAG,EAASC,QAAQC,IAAI,eAAgBR,GAC9BM,CAAQ,EChBCG,CAAe"}
|
package/websocket.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.websocket=(e,t={})=>((e="text/plain; charset=utf-8",t)=>(s,{
|
|
1
|
+
"use strict";exports.websocket=(e,t={})=>((e="text/plain; charset=utf-8",t)=>(s,{...n}={})=>{if(void 0===s||s instanceof Response)return s;const o=new Response(t?.(s)??s,n);return o.headers.set("content-type",e),o})()(null,{status:101,webSocket:e,...t});
|
|
2
2
|
//# sourceMappingURL=websocket.js.map
|
package/websocket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sources":["../src/src/websocket.ts","../src/src/createResponse.ts"],"sourcesContent":[null,null],"names":["client","options","format","transform","body","
|
|
1
|
+
{"version":3,"file":"websocket.js","sources":["../src/src/websocket.ts","../src/src/createResponse.ts"],"sourcesContent":[null,null],"names":["client","options","format","transform","body","undefined","Response","response","headers","set","createResponse","status","webSocket"],"mappings":"+BAEyB,CAACA,EAAmBC,EAAkB,CAAA,ICO7D,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWH,GAAY,MACtB,QAAaI,IAATD,GAAsBA,aAAgBE,SAAU,OAAOF,EAE3D,MAAMG,EAAW,IAAID,SAASH,IAAYC,IAASA,EAAMH,GAEzD,OADAM,EAASC,QAAQC,IAAI,eAAgBP,GAC9BK,CAAQ,EDfjBG,GAAiB,KAAM,CACrBC,OAAQ,IACRC,UAAWZ,KACRC"}
|
package/websocket.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=(e,t={})=>((e="text/plain; charset=utf-8",t)=>(
|
|
1
|
+
const e=(e,t={})=>((e="text/plain; charset=utf-8",t)=>(n,{...s}={})=>{if(void 0===n||n instanceof Response)return n;const o=new Response(t?.(n)??n,s);return o.headers.set("content-type",e),o})()(null,{status:101,webSocket:e,...t});export{e as websocket};
|
|
2
2
|
//# sourceMappingURL=websocket.mjs.map
|
package/websocket.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.mjs","sources":["../src/src/createResponse.ts","../src/src/websocket.ts"],"sourcesContent":[null,null],"names":["websocket","client","options","format","transform","body","
|
|
1
|
+
{"version":3,"file":"websocket.mjs","sources":["../src/src/createResponse.ts","../src/src/websocket.ts"],"sourcesContent":[null,null],"names":["websocket","client","options","format","transform","body","undefined","Response","response","headers","set","createResponse","status","webSocket"],"mappings":"AAQQ,MCNKA,EAAY,CAACC,EAAmBC,EAAkB,CAAA,IDO7D,EACEC,EAAS,4BACTC,IAEF,CAACC,MAAWH,GAAY,MACtB,QAAaI,IAATD,GAAsBA,aAAgBE,SAAU,OAAOF,EAE3D,MAAMG,EAAW,IAAID,SAASH,IAAYC,IAASA,EAAMH,GAEzD,OADAM,EAASC,QAAQC,IAAI,eAAgBP,GAC9BK,CAAQ,ECfjBG,GAAiB,KAAM,CACrBC,OAAQ,IACRC,UAAWZ,KACRC"}
|
package/withContent.d.ts
CHANGED
package/withContent.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.withContent=async t=>{t.content=
|
|
1
|
+
"use strict";exports.withContent=async t=>{t.content=await t.clone().json().catch((()=>t.clone().formData())).catch((()=>t.text()))};
|
|
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","
|
|
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,cAAgBD,EAAQE,QAAQC,OACbC,OAAM,IAAMJ,EAAQE,QAAQG,aAC5BD,OAAM,IAAMJ,EAAQM,QAAO"}
|
package/withContent.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const t=async t=>{t.content=
|
|
1
|
+
const t=async t=>{t.content=await t.clone().json().catch((()=>t.clone().formData())).catch((()=>t.text()))};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","
|
|
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,cAAgBD,EAAQE,QAAQC,OACbC,OAAM,IAAMJ,EAAQE,QAAQG,aAC5BD,OAAM,IAAMJ,EAAQM,QAAO"}
|
package/withCookies.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IRequest } from './
|
|
1
|
+
import { IRequest } from './IttyRouter';
|
|
2
2
|
export declare const withCookies: (r: IRequest) => void;
|
package/withParams.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IRequest } from './
|
|
1
|
+
import { IRequest } from './IttyRouter';
|
|
2
2
|
export declare const withParams: (request: IRequest) => void;
|