itty-router 4.2.2 → 4.3.0-next.0

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.
@@ -0,0 +1,9 @@
1
+ import { RouterOptions } from './Router';
2
+ import { RouteHandler } from 'IttyRouter';
3
+ import { ResponseFormatter } from './createResponse';
4
+ type AutoRouterOptions = {
5
+ missing?: RouteHandler;
6
+ format?: ResponseFormatter;
7
+ } & RouterOptions;
8
+ export declare const AutoRouter: ({ format, missing, after, before, ...options }?: AutoRouterOptions) => import("./Router").RouterType<import("IttyRouter").Route, any[]>;
9
+ export {};
package/AutoRouter.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";const r=((r="text/plain; charset=utf-8",e)=>(o,{headers:t={},...a}={})=>void 0===o||"Response"===o?.constructor.name?o:new Response(e?e(o):o,{headers:{"content-type":r,...t.entries?Object.fromEntries(t):t},...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"),o=(o=500,t)=>{if(o instanceof Error){const{message:r,...a}=o;o=o.status||500,t={error:r||e(o),...a}}return t={status:o,..."object"==typeof t?t:{error:t||e(o)}},r(t,{status:o})},t=r=>{r.proxy=new Proxy(r.proxy||r,{get:(e,o)=>void 0!==e[o]?e[o].bind?.(r)||e[o]:e?.params?.[o]})};exports.AutoRouter=({format:e=r,missing:a=(()=>o(404)),after:n=[],before:s=[],...f}={})=>(({base:r="",routes:e=[],...o}={})=>({__proto__:new Proxy({},{get:(o,t,a,n)=>"handle"==t?a.fetch:(o,...s)=>e.push([t.toUpperCase?.(),RegExp(`^${(n=(r+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),s,n])&&a}),routes:e,...o,async fetch(r,...t){let a,n,s=new URL(r.url),f=r.query={__proto__:null};for(let[r,e]of s.searchParams)f[r]=f[r]?[].concat(f[r],e):e;r:try{for(let e of o.before||[])if(null!=(a=await e(r.proxy??r,...t)))break r;e:for(let[o,f,p,c]of e)if((o==r.method||"ALL"==o)&&(n=s.pathname.match(f))){r.params=n.groups||{},r.route=c;for(let e of p)if(null!=(a=await e(r.proxy??r,...t)))break e}}catch(e){if(!o.onError)throw e;for(let n of o.onError)a=await n(a??e,r.proxy??r,...t)??a}for(let e of o.after||[])a=await e(a,r.proxy??r,...t)??a;return a}}))({before:[t,...s],onError:[o],after:[(r,...e)=>r??a(r,...e),e,...n],...f});
2
+ //# sourceMappingURL=AutoRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoRouter.js","sources":["../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts","../src/src/withParams.ts","../src/src/AutoRouter.ts","../src/src/Router.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["json","format","transform","body","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","JSON","stringify","getMessage","code","error","a","b","Error","message","err","status","withParams","request","proxy","Proxy","get","obj","prop","bind","params","missing","after","before","options","base","routes","other","__proto__","target","receiver","path","fetch","route","handlers","push","toUpperCase","RegExp","replace","async","args","response","match","url","URL","query","k","v","searchParams","concat","t","handler","outer","method","regex","pathname","groups","onError","Router","r"],"mappings":"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"}
package/AutoRouter.mjs ADDED
@@ -0,0 +1,2 @@
1
+ const r=((r="text/plain; charset=utf-8",e)=>(o,{headers:t={},...a}={})=>void 0===o||"Response"===o?.constructor.name?o:new Response(e?e(o):o,{headers:{"content-type":r,...t.entries?Object.fromEntries(t):t},...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"),o=(o=500,t)=>{if(o instanceof Error){const{message:r,...a}=o;o=o.status||500,t={error:r||e(o),...a}}return t={status:o,..."object"==typeof t?t:{error:t||e(o)}},r(t,{status:o})},t=r=>{r.proxy=new Proxy(r.proxy||r,{get:(e,o)=>void 0!==e[o]?e[o].bind?.(r)||e[o]:e?.params?.[o]})},a=({format:e=r,missing:a=(()=>o(404)),after:n=[],before:s=[],...f}={})=>(({base:r="",routes:e=[],...o}={})=>({__proto__:new Proxy({},{get:(o,t,a,n)=>"handle"==t?a.fetch:(o,...s)=>e.push([t.toUpperCase?.(),RegExp(`^${(n=(r+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),s,n])&&a}),routes:e,...o,async fetch(r,...t){let a,n,s=new URL(r.url),f=r.query={__proto__:null};for(let[r,e]of s.searchParams)f[r]=f[r]?[].concat(f[r],e):e;r:try{for(let e of o.before||[])if(null!=(a=await e(r.proxy??r,...t)))break r;e:for(let[o,f,p,c]of e)if((o==r.method||"ALL"==o)&&(n=s.pathname.match(f))){r.params=n.groups||{},r.route=c;for(let e of p)if(null!=(a=await e(r.proxy??r,...t)))break e}}catch(e){if(!o.onError)throw e;for(let n of o.onError)a=await n(a??e,r.proxy??r,...t)??a}for(let e of o.after||[])a=await e(a,r.proxy??r,...t)??a;return a}}))({before:[t,...s],onError:[o],after:[(r,...e)=>r??a(r,...e),e,...n],...f});export{a as AutoRouter};
2
+ //# sourceMappingURL=AutoRouter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoRouter.mjs","sources":["../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts","../src/src/withParams.ts","../src/src/AutoRouter.ts","../src/src/Router.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["json","format","transform","body","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","JSON","stringify","getMessage","code","error","a","b","Error","message","err","status","withParams","request","proxy","Proxy","get","obj","prop","bind","params","AutoRouter","missing","after","before","options","base","routes","other","__proto__","target","receiver","path","fetch","route","handlers","push","toUpperCase","RegExp","replace","async","args","response","match","url","URL","query","k","v","searchParams","concat","t","handler","outer","method","regex","pathname","groups","onError","Router","r"],"mappings":"AAQO,MCNMA,EDOX,EACEC,EAAS,4BACTC,IAEF,CAACC,GAAQC,UAAU,CAAA,KAAOC,GAAS,CAAA,SACxBC,IAATH,GAAiD,aAA3BA,GAAMI,YAAYC,KACtCL,EACA,IAAIM,SAASP,EAAYA,EAAUC,GAAQA,EAAM,CACnCC,QAAS,CACP,eAAgBH,KACZG,EAAQM,QAENC,OAAOC,YAAYR,GACnBA,MAGLC,ICvBHQ,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,KAGpDnB,EAAKoB,EAAG,CAAEI,OAAQL,GAAI,ECpClBM,EAAcC,IACzBA,EAAQC,MAAQ,IAAIC,MAAMF,EAAQC,OAASD,EAAS,CAClDG,IAAK,CAACC,EAAKC,SAAuBzB,IAAdwB,EAAIC,GACND,EAAIC,GAAMC,OAAON,IAAYI,EAAIC,GACjCD,GAAKG,SAASF,IAChC,ECMSG,EAAa,EACxBjC,SAASD,EACTmC,UAAU,KAAMjB,EAAM,MACtBkB,QAAQ,GACRC,SAAS,MACNC,GAA+B,CAAE,ICWhB,GAIlBC,OAAO,GAAIC,SAAS,MAAOC,GAAyB,CAAE,KAExD,CACEC,UAAW,IAAId,MAAM,GAAI,CAEvBC,IAAK,CAACc,EAAaZ,EAAca,EAAsBC,IAC7C,UAARd,EAAmBa,EAASE,MAE1B,CAACC,KAAkBC,IACjBR,EAAOS,KACL,CACElB,EAAKmB,gBACLC,OAAO,KAAKN,GAAQN,EAAOQ,GACxBK,QAAQ,aAAc,OACtBA,QAAQ,oBAAqB,gBAC7BA,QAAQ,kBAAmB,uBAC3BA,QAAQ,MAAO,OACfA,QAAQ,WAAY,iBAEvBJ,EACAH,KAECD,IAEbJ,YACGC,EACHY,YAAa3B,KAAyB4B,GACpC,IAAIC,EACAC,EACAC,EAAM,IAAIC,IAAIhC,EAAQ+B,KACtBE,EAA6BjC,EAAQiC,MAAQ,CAAEjB,UAAW,MAG9D,IAAK,IAAKkB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAE/DG,EAAG,IACD,IAAK,IAAIC,KAAWxB,EAAMJ,QAAU,GAClC,GAAqE,OAAhEkB,QAAiBU,EAAQvC,EAAQC,OAASD,KAAY4B,IAAgB,MAAMU,EAGnFE,EAAO,IAAK,IAAKC,EAAQC,EAAOpB,EAAUH,KAASL,EACjD,IAAK2B,GAAUzC,EAAQyC,QAAoB,OAAVA,KAAqBX,EAAQC,EAAIY,SAASb,MAAMY,IAAS,CACxF1C,EAAQO,OAASuB,EAAMc,QAAU,CAAA,EACjC5C,EAAQqB,MAAQF,EAEhB,IAAK,IAAIoB,KAAWjB,EAClB,GAAqE,OAAhEO,QAAiBU,EAAQvC,EAAQC,OAASD,KAAY4B,IAAgB,MAAMY,CACpF,CACJ,CAAC,MAAO3C,GACP,IAAKkB,EAAM8B,QAAS,MAAMhD,EAE1B,IAAK,IAAI0C,KAAWxB,EAAM8B,QACxBhB,QAAiBU,EAAQV,GAAYhC,EAAKG,EAAQC,OAASD,KAAY4B,IAASC,CACnF,CAED,IAAK,IAAIU,KAAWxB,EAAML,OAAS,GACjCmB,QAAiBU,EAAQV,EAAU7B,EAAQC,OAASD,KAAY4B,IAASC,EAE3E,OAAOA,CACR,ID1EAiB,CAAO,CACVnC,OAAQ,CACNZ,KACGY,GAELkC,QAAS,CAACrD,GACVkB,MAAO,CACL,CAACqC,KAAWnB,IAASmB,GAAKtC,EAAQsC,KAAMnB,GACxCrD,KACGmC,MAEFE"}
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/Router.d.ts CHANGED
@@ -1,55 +1,14 @@
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 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<ErrorOrResponse = Error, RequestType = IRequest, Args extends any[] = any[]> = (response: ErrorOrResponse, request: RequestType, ...args: Args) => any;
40
4
  export type RouterType<R = Route, Args extends any[] = any[]> = {
41
- __proto__: RouterType<R>;
42
- routes: RouteEntry[];
43
- fetch: <A extends any[] = Args>(request: RequestLike, ...extra: Equal<R, Args> extends true ? A : Args) => Promise<any>;
44
- handle: <A extends any[] = Args>(request: RequestLike, ...extra: Equal<R, Args> extends true ? A : Args) => Promise<any>;
45
- all: R;
46
- delete: R;
47
- get: R;
48
- head: R;
49
- options: R;
50
- patch: R;
51
- post: R;
52
- put: R;
53
- } & CustomRoutes<R> & Record<string, any>;
5
+ before?: RouteHandler[];
6
+ onError?: ErrorHandler[];
7
+ after?: ResponseHandler[];
8
+ } & IttyRouterType<R, Args>;
9
+ export type RouterOptions = {
10
+ before?: RouteHandler[];
11
+ onError?: ErrorHandler[];
12
+ after?: 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,a,p)=>"handle"==o?a.fetch:(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,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!=(o=await r(e.proxy??e,...t)))return o}}});
1
+ "use strict";exports.Router=({base:r="",routes:e=[],...o}={})=>({__proto__:new Proxy({},{get:(o,t,a,f)=>"handle"==t?a.fetch:(o,...l)=>e.push([t.toUpperCase?.(),RegExp(`^${(f=(r+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),l,f])&&a}),routes:e,...o,async fetch(r,...t){let a,f,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 o.before||[])if(null!=(a=await e(r.proxy??r,...t)))break r;e:for(let[o,p,c,s]of e)if((o==r.method||"ALL"==o)&&(f=l.pathname.match(p))){r.params=f.groups||{},r.route=s;for(let e of c)if(null!=(a=await e(r.proxy??r,...t)))break e}}catch(e){if(!o.onError)throw e;for(let f of o.onError)a=await f(a??e,r.proxy??r,...t)??a}for(let e of o.after||[])a=await e(a,r.proxy??r,...t)??a;return a}});
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","handler","proxy"],"mappings":"4BA2EsB,EAIlBA,OAAO,GAAIC,SAAS,MAAOC,GAAyB,CAAE,KAExD,CACEC,UAAW,IAAIC,MAAM,GAAI,CAEvBC,IAAK,CAACC,EAAaC,EAAcC,EAAsBC,IAC7C,UAARF,EAAmBC,EAASE,MAE5B,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,IAEXP,YACGC,EACHe,YAAaC,KAAyBC,GACpC,IAAIC,EAAUC,EAAOC,EAAM,IAAIC,IAAIL,EAAQI,KAAME,EAA6BN,EAAQM,MAAQ,CAAErB,UAAW,MAG3G,IAAK,IAAKsB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAG/D,IAAK,IAAKG,EAAQC,EAAOlB,EAAUH,KAASR,EAC1C,IAAK4B,GAAUX,EAAQW,QAAoB,OAAVA,KAAqBR,EAAQC,EAAIS,SAASV,MAAMS,IAAS,CACxFZ,EAAQc,OAASX,EAAMY,QAAU,CAAA,EACjCf,EAAQP,MAAQF,EAChB,IAAK,IAAIyB,KAAWtB,EAClB,GAAqE,OAAhEQ,QAAiBc,EAAQhB,EAAQiB,OAASjB,KAAYC,IAAgB,OAAOC,CACrF,CACJ"}
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","onError","after"],"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,QAAS,MAAMD,EAE1B,IAAK,IAAIT,KAAW5B,EAAMsC,QACxBpB,QAAiBU,EAAQV,GAAYmB,EAAKrB,EAAQc,OAASd,KAAYC,IAASC,CACnF,CAED,IAAK,IAAIU,KAAW5B,EAAMuC,OAAS,GACjCrB,QAAiBU,EAAQV,EAAUF,EAAQc,OAASd,KAAYC,IAASC,EAE3E,OAAOA,CACR"}
package/Router.mjs CHANGED
@@ -1,2 +1,2 @@
1
- const e=({base:e="",routes:r=[],...o}={})=>({__proto__:new Proxy({},{get:(o,t,a,p)=>"handle"==t?a.fetch:(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,f]of r)if((l==e.method||"ALL"==l)&&(a=p.pathname.match(c))){e.params=a.groups||{},e.route=f;for(let r of s)if(null!=(t=await r(e.proxy??e,...o)))return t}}});export{e as Router};
1
+ const r=({base:r="",routes:e=[],...o}={})=>({__proto__:new Proxy({},{get:(o,t,a,f)=>"handle"==t?a.fetch:(o,...l)=>e.push([t.toUpperCase?.(),RegExp(`^${(f=(r+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),l,f])&&a}),routes:e,...o,async fetch(r,...t){let a,f,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 o.before||[])if(null!=(a=await e(r.proxy??r,...t)))break r;e:for(let[o,p,c,n]of e)if((o==r.method||"ALL"==o)&&(f=l.pathname.match(p))){r.params=f.groups||{},r.route=n;for(let e of c)if(null!=(a=await e(r.proxy??r,...t)))break e}}catch(e){if(!o.onError)throw e;for(let f of o.onError)a=await f(a??e,r.proxy??r,...t)??a}for(let e of o.after||[])a=await e(a,r.proxy??r,...t)??a;return a}});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","fetch","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":"AA2Ea,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,MAE5B,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,IAEXP,YACGC,EACHe,YAAaC,KAAyBC,GACpC,IAAIC,EAAUC,EAAOC,EAAM,IAAIC,IAAIL,EAAQI,KAAME,EAA6BN,EAAQM,MAAQ,CAAErB,UAAW,MAG3G,IAAK,IAAKsB,EAAGC,KAAMJ,EAAIK,aACrBH,EAAMC,GAAKD,EAAMC,GAAM,GAAgBG,OAAOJ,EAAMC,GAAIC,GAAKA,EAG/D,IAAK,IAAKG,EAAQC,EAAOlB,EAAUH,KAASR,EAC1C,IAAK4B,GAAUX,EAAQW,QAAoB,OAAVA,KAAqBR,EAAQC,EAAIS,SAASV,MAAMS,IAAS,CACxFZ,EAAQc,OAASX,EAAMY,QAAU,CAAA,EACjCf,EAAQP,MAAQF,EAChB,IAAK,IAAIyB,KAAWtB,EAClB,GAAqE,OAAhEQ,QAAiBc,EAAQhB,EAAQiB,OAASjB,KAAYC,IAAgB,OAAOC,CACrF,CACJ"}
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","onError","after"],"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,QAAS,MAAMD,EAE1B,IAAK,IAAIT,KAAW5B,EAAMsC,QACxBpB,QAAiBU,EAAQV,GAAYmB,EAAKrB,EAAQc,OAASd,KAAYC,IAASC,CACnF,CAED,IAAK,IAAIU,KAAW5B,EAAMuC,OAAS,GACjCrB,QAAiBU,EAAQV,EAAUF,EAAQc,OAASd,KAAYC,IAASC,EAE3E,OAAOA,CACR"}
package/createCors.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { IRequest } from './Router';
1
+ import { IRequest } from './IttyRouter';
2
2
  export type CorsOptions = {
3
3
  origins?: string[] | ((origin: string) => boolean);
4
4
  maxAge?: number;
package/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
+ export * from './IttyRouter';
1
2
  export * from './Router';
3
+ export * from './AutoRouter';
2
4
  export * from './StatusError';
3
5
  export * from './createResponse';
4
6
  export * from './error';
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";class e 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 t=(e="text/plain; charset=utf-8",t)=>(o,{headers:s={},...r}={})=>void 0===o||"Response"===o?.constructor.name?o:new Response(t?t(o):o,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...r}),o=t("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"),r=t("text/plain; charset=utf-8",String),n=t("text/html"),a=t("image/jpeg"),c=t("image/png"),p=t("image/webp");exports.Router=({base:e="",routes:t=[],...o}={})=>({__proto__:new Proxy({},{get:(o,s,r,n)=>"handle"==s?r.fetch:(o,...a)=>t.push([s.toUpperCase?.(),RegExp(`^${(n=(e+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),a,n])&&r}),routes:t,...o,async fetch(e,...o){let s,r,n=new URL(e.url),a=e.query={__proto__:null};for(let[e,t]of n.searchParams)a[e]=a[e]?[].concat(a[e],t):t;for(let[a,c,p,i]of t)if((a==e.method||"ALL"==a)&&(r=n.pathname.match(c))){e.params=r.groups||{},e.route=i;for(let t of p)if(null!=(s=await t(e.proxy??e,...o)))return s}}}),exports.StatusError=e,exports.createCors=(e={})=>{const{origins:t=["*"],maxAge:o,methods:s=["GET"],headers:r={}}=e;let n;const a="function"==typeof t?t:e=>t.includes(e)||t.includes("*"),c={"content-type":"application/json","Access-Control-Allow-Methods":s.join(", "),...r};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:s}=e;return[101,301,302,308].includes(o)||t.get("access-control-allow-origin")?e:new Response(s,{status:o,headers:{...Object.fromEntries(t),...c,...n,"content-type":t.get("content-type")}})},preflight:e=>{const t=[...new Set(["OPTIONS",...s])],o=e.headers.get("origin")||"";if(n=a(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"),...n};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=(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)}},o(t,{status:e})},exports.html=n,exports.jpeg=a,exports.json=o,exports.png=c,exports.status=(e,t)=>new Response(null,{...t,status:e}),exports.text=r,exports.webp=p,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,o])=>o?(e[t]=o,e):e),{})},exports.withParams=e=>{e.proxy=new Proxy(e.proxy||e,{get:(t,o)=>void 0!==t[o]?t[o].bind?.(e)||t[o]:t?.params?.[o]})};
1
+ "use strict";const e=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,n)=>"handle"==o?s.fetch:(r,...a)=>t.push([o.toUpperCase?.(),RegExp(`^${(n=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),a,n])&&s}),routes:t,...r,async fetch(e,...o){let s,n,a=new URL(e.url),c=e.query={__proto__:null};for(let[e,t]of a.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,p,l]of t)if((r==e.method||"ALL"==r)&&(n=a.pathname.match(c))){e.params=n.groups||{},e.route=l;for(let t of p)if(null!=(s=await t(e.proxy??e,...o)))break t}}catch(t){if(!r.onError)throw t;for(let n of r.onError)s=await n(s??t,e.proxy??e,...o)??s}for(let t of r.after||[])s=await t(s,e.proxy??e,...o)??s;return s}}),t=(e="text/plain; charset=utf-8",t)=>(r,{headers:o={},...s}={})=>void 0===r||"Response"===r?.constructor.name?r:new Response(t?t(r):r,{headers:{"content-type":e,...o.entries?Object.fromEntries(o):o},...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})},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]})};class a 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=r,missing:o=(()=>s(404)),after:a=[],before:c=[],...p}={})=>e({before:[n,...c],onError:[s],after:[(e,...t)=>e??o(e,...t),t,...a],...p}),exports.IttyRouter=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,n)=>(r,...a)=>t.push([o.toUpperCase?.(),RegExp(`^${(n=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),a,n])&&s}),routes:t,...r,async fetch(e,...r){let o,s,n=new URL(e.url),a=e.query={__proto__:null};for(let[e,t]of n.searchParams)a[e]=a[e]?[].concat(a[e],t):t;for(let[a,c,p,l]of t)if((a==e.method||"ALL"==a)&&(s=n.pathname.match(c))){e.params=s.groups||{},e.route=l;for(let t of p)if(null!=(o=await t(e.proxy??e,...r)))return o}}}),exports.Router=e,exports.StatusError=a,exports.createCors=(e={})=>{const{origins:t=["*"],maxAge:r,methods:o=["GET"],headers:s={}}=e;let n;const a="function"==typeof t?t:e=>t.includes(e)||t.includes("*"),c={"content-type":"application/json","Access-Control-Allow-Methods":o.join(", "),...s};r&&(c["Access-Control-Max-Age"]=r);return{corsify:e=>{if(!e)throw new Error("No fetch handler responded and no upstream to proxy to specified.");const{headers:t,status:r,body:o}=e;return[101,301,302,308].includes(r)||t.get("access-control-allow-origin")?e:new Response(o,{status:r,headers:{...Object.fromEntries(t),...c,...n,"content-type":t.get("content-type")}})},preflight:e=>{const t=[...new Set(["OPTIONS",...o])],r=e.headers.get("origin")||"";if(n=a(r)&&{"Access-Control-Allow-Origin":r},"OPTIONS"===e.method){const r={...c,"Access-Control-Allow-Methods":t.join(", "),"Access-Control-Allow-Headers":e.headers.get("Access-Control-Request-Headers"),...n};return new Response(null,{headers:e.headers.get("Origin")&&e.headers.get("Access-Control-Request-Method")&&e.headers.get("Access-Control-Request-Headers")?r:{Allow:t.join(", ")}})}}}},exports.createResponse=t,exports.error=s,exports.html=p,exports.jpeg=l,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=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,r])=>r?(e[t]=r,e):e),{})},exports.withParams=n;
2
2
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/src/StatusError.ts","../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.ts","../src/src/text.ts","../src/src/html.ts","../src/src/jpeg.ts","../src/src/png.ts","../src/src/webp.ts","../src/src/Router.ts","../src/src/createCors.ts","../src/src/status.ts","../src/src/withContent.ts","../src/src/withCookies.ts","../src/src/withParams.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["StatusError","Error","status","constructor","body","super","error","Object","assign","this","createResponse","format","transform","headers","rest","undefined","name","Response","entries","fromEntries","json","JSON","stringify","getMessage","code","text","String","html","jpeg","png","webp","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","handler","proxy","options","origins","maxAge","methods","allowOrigin","isAllowOrigin","origin","includes","rHeaders","join","corsify","preflight","r","useMethods","Set","reqHeaders","Allow","a","b","message","err","content","clone","catch","formData","cookies","split","map","p","reduce","obj","bind"],"mappings":"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"}
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","onError","after","createResponse","format","transform","body","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","json","JSON","stringify","getMessage","code","error","a","b","Error","message","status","withParams","obj","bind","StatusError","super","assign","this","text","String","html","jpeg","png","webp","missing","options","r","origins","maxAge","methods","allowOrigin","isAllowOrigin","origin","includes","rHeaders","join","corsify","preflight","useMethods","Set","reqHeaders","Allow","content","clone","catch","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=[],...o}={})=>({__proto__:new Proxy({},{get:(o,s,r,n)=>"handle"==s?r.fetch:(o,...a)=>t.push([s.toUpperCase?.(),RegExp(`^${(n=(e+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),a,n])&&r}),routes:t,...o,async fetch(e,...o){let s,r,n=new URL(e.url),a=e.query={__proto__:null};for(let[e,t]of n.searchParams)a[e]=a[e]?[].concat(a[e],t):t;for(let[a,c,i,l]of t)if((a==e.method||"ALL"==a)&&(r=n.pathname.match(c))){e.params=r.groups||{},e.route=l;for(let t of i)if(null!=(s=await t(e.proxy??e,...o)))return s}}});class t 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 o=(e="text/plain; charset=utf-8",t)=>(o,{headers:s={},...r}={})=>void 0===o||"Response"===o?.constructor.name?o:new Response(t?t(o):o,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...r}),s=o("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"),n=(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)}},s(t,{status:e})},a=(e,t)=>new Response(null,{...t,status:e}),c=o("text/plain; charset=utf-8",String),i=o("text/html"),l=o("image/jpeg"),p=o("image/png"),d=o("image/webp"),u=async e=>{e.content=e.body?await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text())):void 0},h=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,o])=>o?(e[t]=o,e):e),{})},g=e=>{e.proxy=new Proxy(e.proxy||e,{get:(t,o)=>void 0!==t[o]?t[o].bind?.(e)||t[o]:t?.params?.[o]})},f=(e={})=>{const{origins:t=["*"],maxAge:o,methods:s=["GET"],headers:r={}}=e;let n;const a="function"==typeof t?t:e=>t.includes(e)||t.includes("*"),c={"content-type":"application/json","Access-Control-Allow-Methods":s.join(", "),...r};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:s}=e;return[101,301,302,308].includes(o)||t.get("access-control-allow-origin")?e:new Response(s,{status:o,headers:{...Object.fromEntries(t),...c,...n,"content-type":t.get("content-type")}})},preflight:e=>{const t=[...new Set(["OPTIONS",...s])],o=e.headers.get("origin")||"";if(n=a(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"),...n};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{e as Router,t as StatusError,f as createCors,o as createResponse,n as error,i as html,l as jpeg,s as json,p as png,a as status,c as text,d as webp,u as withContent,h as withCookies,g as withParams};
1
+ const e=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,n)=>(r,...a)=>t.push([o.toUpperCase?.(),RegExp(`^${(n=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),a,n])&&s}),routes:t,...r,async fetch(e,...r){let o,s,n=new URL(e.url),a=e.query={__proto__:null};for(let[e,t]of n.searchParams)a[e]=a[e]?[].concat(a[e],t):t;for(let[a,c,l,p]of t)if((a==e.method||"ALL"==a)&&(s=n.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}}}),t=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,n)=>"handle"==o?s.fetch:(r,...a)=>t.push([o.toUpperCase?.(),RegExp(`^${(n=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),a,n])&&s}),routes:t,...r,async fetch(e,...o){let s,n,a=new URL(e.url),c=e.query={__proto__:null};for(let[e,t]of a.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)&&(n=a.pathname.match(c))){e.params=n.groups||{},e.route=p;for(let t of l)if(null!=(s=await t(e.proxy??e,...o)))break t}}catch(t){if(!r.onError)throw t;for(let n of r.onError)s=await n(s??t,e.proxy??e,...o)??s}for(let t of r.after||[])s=await t(s,e.proxy??e,...o)??s;return s}}),r=(e="text/plain; charset=utf-8",t)=>(r,{headers:o={},...s}={})=>void 0===r||"Response"===r?.constructor.name?r:new Response(t?t(r):r,{headers:{"content-type":e,...o.entries?Object.fromEntries(o):o},...s}),o=r("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"),n=(e=500,t)=>{if(e instanceof Error){const{message:r,...o}=e;e=e.status||500,t={error:r||s(e),...o}}return t={status:e,..."object"==typeof t?t:{error:t||s(e)}},o(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]})},c=({format:e=o,missing:r=(()=>n(404)),after:s=[],before:c=[],...l}={})=>t({before:[a,...c],onError:[n],after:[(e,...t)=>e??r(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 p=(e,t)=>new Response(null,{...t,status:e}),i=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=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,r])=>r?(e[t]=r,e):e),{})},y=(e={})=>{const{origins:t=["*"],maxAge:r,methods:o=["GET"],headers:s={}}=e;let n;const a="function"==typeof t?t:e=>t.includes(e)||t.includes("*"),c={"content-type":"application/json","Access-Control-Allow-Methods":o.join(", "),...s};r&&(c["Access-Control-Max-Age"]=r);return{corsify:e=>{if(!e)throw new Error("No fetch handler responded and no upstream to proxy to specified.");const{headers:t,status:r,body:o}=e;return[101,301,302,308].includes(r)||t.get("access-control-allow-origin")?e:new Response(o,{status:r,headers:{...Object.fromEntries(t),...c,...n,"content-type":t.get("content-type")}})},preflight:e=>{const t=[...new Set(["OPTIONS",...o])],r=e.headers.get("origin")||"";if(n=a(r)&&{"Access-Control-Allow-Origin":r},"OPTIONS"===e.method){const r={...c,"Access-Control-Allow-Methods":t.join(", "),"Access-Control-Allow-Headers":e.headers.get("Access-Control-Request-Headers"),...n};return new Response(null,{headers:e.headers.get("Origin")&&e.headers.get("Access-Control-Request-Method")&&e.headers.get("Access-Control-Request-Headers")?r:{Allow:t.join(", ")}})}}}};export{c as AutoRouter,e as IttyRouter,t as Router,l as StatusError,y as createCors,r as createResponse,n as error,f as html,u as jpeg,o as json,h as png,p as status,i as text,g as webp,d as withContent,w as withCookies,a as withParams};
2
2
  //# sourceMappingURL=index.mjs.map
package/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/src/Router.ts","../src/src/StatusError.ts","../src/src/createResponse.ts","../src/src/json.ts","../src/src/error.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/withParams.ts","../src/src/createCors.ts"],"sourcesContent":[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","method","regex","pathname","params","groups","handler","proxy","StatusError","Error","status","constructor","body","super","error","Object","assign","this","createResponse","format","transform","headers","rest","undefined","name","Response","entries","fromEntries","json","JSON","stringify","getMessage","code","a","b","message","err","options","text","String","html","jpeg","png","webp","withContent","content","clone","catch","formData","withCookies","r","cookies","split","map","p","reduce","withParams","obj","bind","createCors","origins","maxAge","methods","allowOrigin","isAllowOrigin","origin","includes","rHeaders","join","corsify","preflight","useMethods","Set","reqHeaders","Allow"],"mappings":"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"}
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","onError","after","createResponse","format","transform","body","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","json","JSON","stringify","getMessage","code","error","a","b","Error","message","status","withParams","obj","bind","AutoRouter","missing","options","r","StatusError","super","assign","this","text","String","html","jpeg","png","webp","withContent","content","clone","catch","formData","withCookies","cookies","split","map","p","reduce","createCors","origins","maxAge","methods","allowOrigin","isAllowOrigin","origin","includes","rHeaders","join","corsify","preflight","useMethods","Set","reqHeaders","Allow"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itty-router",
3
- "version": "4.2.2",
3
+ "version": "4.3.0-next.0",
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/withContent.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { IRequest, IRequestStrict } from './Router';
1
+ import { IRequest, IRequestStrict } from './IttyRouter';
2
2
  export type HasContent<ContentType> = {
3
3
  content: ContentType;
4
4
  } & IRequestStrict;
package/withContent.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";exports.withContent=async t=>{t.content=t.body?await t.clone().json().catch((()=>t.clone().formData())).catch((()=>t.text())):void 0};
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
@@ -1 +1 @@
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"}
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=t.body?await t.clone().json().catch((()=>t.clone().formData())).catch((()=>t.text())):void 0};export{t as withContent};
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
@@ -1 +1 @@
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"}
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 './Router';
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 './Router';
1
+ import { IRequest } from './IttyRouter';
2
2
  export declare const withParams: (request: IRequest) => void;