itty-router 4.3.0-next.0 → 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 CHANGED
@@ -1,9 +1,8 @@
1
- import { RouterOptions } from './Router';
2
1
  import { RouteHandler } from 'IttyRouter';
3
- import { ResponseFormatter } from './createResponse';
2
+ import { ResponseHandler, RouterOptions } from './Router';
4
3
  type AutoRouterOptions = {
5
4
  missing?: RouteHandler;
6
- format?: ResponseFormatter;
5
+ format?: ResponseHandler;
7
6
  } & RouterOptions;
8
- export declare const AutoRouter: ({ format, missing, after, before, ...options }?: AutoRouterOptions) => import("./Router").RouterType<import("IttyRouter").Route, any[]>;
7
+ export declare const AutoRouter: ({ format, missing, finally: f, before, ...options }?: AutoRouterOptions) => import("./Router").RouterType<import("IttyRouter").Route, any[]>;
9
8
  export {};
package/AutoRouter.js CHANGED
@@ -1,2 +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});
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
2
  //# sourceMappingURL=AutoRouter.js.map
package/AutoRouter.js.map CHANGED
@@ -1 +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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"}
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 CHANGED
@@ -1,2 +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};
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
2
  //# sourceMappingURL=AutoRouter.mjs.map
@@ -1 +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":"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"}
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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"}
@@ -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/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/15a90b05-344d-4135-a3f8-52a4d117250e" alt="Itty Router" />
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
- <p align="center">
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/kevinrwhitley" target="_blank">
42
- <img src="https://img.shields.io/twitter/follow/kevinrwhitley.svg?style=social&label=Follow" alt="follow the author" />
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
- Itty is arguably the smallest (~460 bytes) feature-rich JavaScript router available, while enabling dead-simple API code.
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. [~460](https://deno.bundlejs.com/?q=itty-router/Router) bytes for the Router itself, or [~1.6k](https://bundlephobia.com/package/itty-router) for the entire library (>100x smaller than [express.js](https://www.npmjs.com/package/express)).
58
- - [Fully-Typed](https://itty.dev/itty-router/typescript).
59
- - Shorter, simpler route code than most modern routers.
60
- - Dead-simple [middleware](https://itty.dev/itty-router/middleware) - use ours or write your own.
61
- - Supports [nested APIs](https://itty.dev/itty-router/nesting).
62
- - Platform agnostic (based on [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)) - use it [anywhere, in any environment](https://itty.dev/itty-router/runtimes).
63
- - Parses [route params](https://itty.dev/itty-router/route-patterns#params),
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
- 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!
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
- That's it!
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
- ```ts
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
- ### 2. You don't have to build a response in each route handler.
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
- Check this out:
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,14 +1,14 @@
1
1
  import { Equal, IRequest, IttyRouterOptions, IttyRouterType, Route, RouteHandler, UniversalRoute } from './IttyRouter';
2
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;
3
+ export type ErrorHandler<ErrorType = Error, RequestType = IRequest, Args extends any[] = any[]> = (response: ErrorType, request: RequestType, ...args: Args) => any;
4
4
  export type RouterType<R = Route, Args extends any[] = any[]> = {
5
5
  before?: RouteHandler[];
6
- onError?: ErrorHandler[];
7
- after?: ResponseHandler[];
6
+ catch?: ErrorHandler;
7
+ finally?: ResponseHandler[];
8
8
  } & IttyRouterType<R, Args>;
9
9
  export type RouterOptions = {
10
10
  before?: RouteHandler[];
11
- onError?: ErrorHandler[];
12
- after?: ResponseHandler[];
11
+ catch?: ErrorHandler;
12
+ finally?: ResponseHandler[];
13
13
  } & IttyRouterOptions;
14
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>;
package/Router.js CHANGED
@@ -1,2 +1,2 @@
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}});
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","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"}
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 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};
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","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"}
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/createResponse.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";exports.createResponse=(e="text/plain; charset=utf-8",t)=>(s,{headers:n={},...r}={})=>void 0===s||"Response"===s?.constructor.name?s:new Response(t?t(s):s,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...r});
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
@@ -1 +1 @@
1
- {"version":3,"file":"createResponse.js","sources":["../src/src/createResponse.ts"],"sourcesContent":[null],"names":["format","transform","body","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries"],"mappings":"oCASE,CACEA,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"}
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"}
@@ -1,2 +1,2 @@
1
- const e=(e="text/plain; charset=utf-8",t)=>(n,{headers:s={},...o}={})=>void 0===n||"Response"===n?.constructor.name?n:new Response(t?t(n):n,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...o});export{e as createResponse};
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
@@ -1 +1 @@
1
- {"version":3,"file":"createResponse.mjs","sources":["../src/src/createResponse.ts"],"sourcesContent":[null],"names":["createResponse","format","transform","body","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries"],"mappings":"AAQa,MAAAA,EACX,CACEC,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"}
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 e=((e="text/plain; charset=utf-8",r)=>(t,{headers:s={},...n}={})=>void 0===t||"Response"===t?.constructor.name?t:new Response(r?r(t):t,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...n}))("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");exports.error=(t=500,s)=>{if(t instanceof Error){const{message:e,...n}=t;t=t.status||500,s={error:e||r(t),...n}}return s={status:t,..."object"==typeof s?s:{error:s||r(t)}},e(s,{status:t})};
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","JSON","stringify","getMessage","code","a","b","Error","message","err","status","error"],"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,+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,KAGpDlB,EAAKmB,EAAG,CAAEI,OAAQL,GAAI"}
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 e=((e="text/plain; charset=utf-8",r)=>(t,{headers:n={},...o}={})=>void 0===t||"Response"===t?.constructor.name?t:new Response(r?r(t):t,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...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"),t=(t=500,n)=>{if(t instanceof Error){const{message:e,...o}=t;t=t.status||500,n={error:e||r(t),...o}}return n={status:t,..."object"==typeof n?n:{error:n||r(t)}},e(n,{status:t})};export{t as error};
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","JSON","stringify","getMessage","code","error","a","b","Error","message","err","status"],"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"}
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 e=((e="text/plain; charset=utf-8",t)=>(s,{headers:n={},...r}={})=>void 0===s||"Response"===s?.constructor.name?s:new Response(t?t(s):s,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...r}))("text/html");exports.html=e;
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse"],"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,CAAe"}
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,{headers:s={},...o}={})=>void 0===n||"Response"===n?.constructor.name?n:new Response(t?t(n):n,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...o}))("text/html");export{e as html};
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse"],"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,CAAe"}
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.js CHANGED
@@ -1,2 +1,2 @@
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;
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/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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"}
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":"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"}
package/index.mjs CHANGED
@@ -1,2 +1,2 @@
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};
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/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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"}
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":"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"}
package/jpeg.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";const e=((e="text/plain; charset=utf-8",t)=>(s,{headers:n={},...r}={})=>void 0===s||"Response"===s?.constructor.name?s:new Response(t?t(s):s,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...r}))("image/jpeg");exports.jpeg=e;
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse"],"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,CAAe"}
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,{headers:s={},...o}={})=>void 0===n||"Response"===n?.constructor.name?n:new Response(t?t(n):n,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...o}))("image/jpeg");export{e as jpeg};
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse"],"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,CAAe"}
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 e=((e="text/plain; charset=utf-8",t)=>(s,{headers:n={},...o}={})=>void 0===s||"Response"===s?.constructor.name?s:new Response(t?t(s):s,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...o}))("application/json; charset=utf-8",JSON.stringify);exports.json=e;
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","JSON","stringify"],"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"}
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 e=((e="text/plain; charset=utf-8",t)=>(n,{headers:s={},...o}={})=>void 0===n||"Response"===n?.constructor.name?n:new Response(t?t(n):n,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...o}))("application/json; charset=utf-8",JSON.stringify);export{e as json};
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","JSON","stringify"],"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"}
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.0-next.0",
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",
package/png.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";const e=((e="text/plain; charset=utf-8",t)=>(s,{headers:n={},...r}={})=>void 0===s||"Response"===s?.constructor.name?s:new Response(t?t(s):s,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...r}))("image/png");exports.png=e;
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse"],"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,ICvBJQ,CAAe"}
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,{headers:s={},...o}={})=>void 0===n||"Response"===n?.constructor.name?n:new Response(t?t(n):n,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...o}))("image/png");export{e as png};
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse"],"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,ICvBJQ,CAAe"}
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 e=((e="text/plain; charset=utf-8",t)=>(s,{headers:n={},...r}={})=>void 0===s||"Response"===s?.constructor.name?s:new Response(t?t(s):s,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...r}))("text/plain; charset=utf-8",String);exports.text=e;
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","String"],"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,4BACAC"}
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 e=((e="text/plain; charset=utf-8",t)=>(n,{headers:s={},...r}={})=>void 0===n||"Response"===n?.constructor.name?n:new Response(t?t(n):n,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...r}))("text/plain; charset=utf-8",String);export{e as text};
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","String"],"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,4BACAC"}
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,{headers:n={},...r}={})=>void 0===s||"Response"===s?.constructor.name?s:new Response(t?t(s):s,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...r}))("image/webp");exports.webp=e;
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse"],"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,CAAe"}
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,{headers:s={},...o}={})=>void 0===n||"Response"===n?.constructor.name?n:new Response(t?t(n):n,{headers:{"content-type":e,...s.entries?Object.fromEntries(s):s},...o}))("image/webp");export{e as webp};
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse"],"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,CAAe"}
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,{headers:n={},...o}={})=>void 0===s||"Response"===s?.constructor.name?s:new Response(t?t(s):s,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...o}))()(null,{status:101,webSocket:e,...t});
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","status","webSocket"],"mappings":"+BAEyB,CAACA,EAAmBC,EAAkB,CAAA,ICO7D,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,IDtBrBQ,GAAiB,KAAM,CACrBC,OAAQ,IACRC,UAAWhB,KACRC"}
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)=>(s,{headers:n={},...o}={})=>void 0===s||"Response"===s?.constructor.name?s:new Response(t?t(s):s,{headers:{"content-type":e,...n.entries?Object.fromEntries(n):n},...o}))()(null,{status:101,webSocket:e,...t});export{e as websocket};
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","headers","rest","undefined","constructor","name","Response","entries","Object","fromEntries","createResponse","status","webSocket"],"mappings":"AAQO,MCNMA,EAAY,CAACC,EAAmBC,EAAkB,CAAA,IDO7D,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,ICtBrBQ,GAAiB,KAAM,CACrBC,OAAQ,IACRC,UAAWhB,KACRC"}
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"}