itty-router 3.0.0-next.4 → 3.0.0-next.6

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.
@@ -28,6 +28,6 @@ declare type RouterType = {
28
28
  routes: RouteEntry[];
29
29
  handle: (request: RequestLike, ...extra: any) => Promise<any>;
30
30
  } & RouterTraps;
31
- declare function Router({ base, routes }?: RouterOptions): RouterType;
31
+ declare const Router: ({ base, routes }?: RouterOptions) => RouterType;
32
32
 
33
33
  export { RequestLike, RequestTraps, Route, RouteEntry, RouteHandler, Router, RouterOptions, RouterTraps, RouterType };
@@ -1,57 +1 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // src/itty-router.ts
20
- var itty_router_exports = {};
21
- __export(itty_router_exports, {
22
- Router: () => Router
23
- });
24
- module.exports = __toCommonJS(itty_router_exports);
25
- var toQuery = (params) => [...params.entries()].reduce(
26
- (acc, [k, v]) => (acc[k] === void 0 ? acc[k] = v : acc[k] = [...[acc[k]], v].flat()) && acc,
27
- {}
28
- );
29
- function Router({ base = "", routes = [] } = {}) {
30
- return {
31
- __proto__: new Proxy({}, {
32
- get: (target, prop, receiver) => (route, ...handlers) => routes.push([
33
- prop.toUpperCase(),
34
- RegExp(`^${(base + route).replace(/(\/?)\*/g, "($1.*)?").replace(/(\/$)|((?<=\/)\/)/, "").replace(/(:(\w+)\+)/, "(?<$2>.*)").replace(/:(\w+)(\?)?(\.)?/g, "$2(?<$1>[^/]+)$2$3").replace(/\.(?=[\w(])/, "\\.").replace(/\)\.\?\(([^\[]+)\[\^/g, "?)\\.?($1(?<=\\.)[^\\.")}/*$`),
35
- handlers
36
- ]) && receiver
37
- }),
38
- routes,
39
- async handle(request, ...args) {
40
- let response, match, url = new URL(request.url);
41
- request.query = toQuery(url.searchParams);
42
- for (let [method, route, handlers] of routes) {
43
- if ((method === request.method || method === "ALL") && (match = url.pathname.match(route))) {
44
- request.params = match.groups;
45
- for (let handler of handlers) {
46
- if ((response = await handler(request.proxy || request, ...args)) !== void 0)
47
- return response;
48
- }
49
- }
50
- }
51
- }
52
- };
53
- }
54
- // Annotate the CommonJS export names for ESM import in node:
55
- 0 && (module.exports = {
56
- Router
57
- });
1
+ var u=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var h=(r,e)=>{for(var t in e)u(r,t,{get:e[t],enumerable:!0})},x=(r,e,t,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of d(e))!g.call(r,o)&&o!==t&&u(r,o,{get:()=>e[o],enumerable:!(p=i(e,o))||p.enumerable});return r};var f=r=>x(u({},"__esModule",{value:!0}),r);var T={};h(T,{Router:()=>m});module.exports=f(T);var $=r=>[...r.entries()].reduce((e,[t,p])=>(e[t]===void 0?e[t]=p:e[t]=[e[t],p].flat())&&e||e,{}),m=({base:r="",routes:e=[]}={})=>({__proto__:new Proxy({},{get:(t,p,o)=>(a,...n)=>e.push([p.toUpperCase(),RegExp(`^${(r+a).replace(/(\/?)\*/g,"($1.*)?").replace(/(\/$)|((?<=\/)\/)/,"").replace(/(:(\w+)\+)/,"(?<$2>.*)").replace(/:(\w+)(\?)?(\.)?/g,"$2(?<$1>[^/]+)$2$3").replace(/\.(?=[\w(])/,"\\.").replace(/\)\.\?\(([^\[]+)\[\^/g,"?)\\.?($1(?<=\\.)[^\\.")}/*$`),n])&&o}),routes:e,async handle(t,...p){let o,a,n=new URL(t.url);t.query=$(n.searchParams);for(let[s,R,l]of e)if((s===t.method||s==="ALL")&&(a=n.pathname.match(R))){t.params=a.groups;for(let y of l)if((o=await y(t.proxy||t,...p))!==void 0)return o}}});0&&(module.exports={Router});
@@ -1,33 +1 @@
1
- // src/itty-router.ts
2
- var toQuery = (params) => [...params.entries()].reduce(
3
- (acc, [k, v]) => (acc[k] === void 0 ? acc[k] = v : acc[k] = [...[acc[k]], v].flat()) && acc,
4
- {}
5
- );
6
- function Router({ base = "", routes = [] } = {}) {
7
- return {
8
- __proto__: new Proxy({}, {
9
- get: (target, prop, receiver) => (route, ...handlers) => routes.push([
10
- prop.toUpperCase(),
11
- RegExp(`^${(base + route).replace(/(\/?)\*/g, "($1.*)?").replace(/(\/$)|((?<=\/)\/)/, "").replace(/(:(\w+)\+)/, "(?<$2>.*)").replace(/:(\w+)(\?)?(\.)?/g, "$2(?<$1>[^/]+)$2$3").replace(/\.(?=[\w(])/, "\\.").replace(/\)\.\?\(([^\[]+)\[\^/g, "?)\\.?($1(?<=\\.)[^\\.")}/*$`),
12
- handlers
13
- ]) && receiver
14
- }),
15
- routes,
16
- async handle(request, ...args) {
17
- let response, match, url = new URL(request.url);
18
- request.query = toQuery(url.searchParams);
19
- for (let [method, route, handlers] of routes) {
20
- if ((method === request.method || method === "ALL") && (match = url.pathname.match(route))) {
21
- request.params = match.groups;
22
- for (let handler of handlers) {
23
- if ((response = await handler(request.proxy || request, ...args)) !== void 0)
24
- return response;
25
- }
26
- }
27
- }
28
- }
29
- };
30
- }
31
- export {
32
- Router
33
- };
1
+ var y=n=>[...n.entries()].reduce((t,[e,r])=>(t[e]===void 0?t[e]=r:t[e]=[t[e],r].flat())&&t||t,{}),i=({base:n="",routes:t=[]}={})=>({__proto__:new Proxy({},{get:(e,r,o)=>(p,...a)=>t.push([r.toUpperCase(),RegExp(`^${(n+p).replace(/(\/?)\*/g,"($1.*)?").replace(/(\/$)|((?<=\/)\/)/,"").replace(/(:(\w+)\+)/,"(?<$2>.*)").replace(/:(\w+)(\?)?(\.)?/g,"$2(?<$1>[^/]+)$2$3").replace(/\.(?=[\w(])/,"\\.").replace(/\)\.\?\(([^\[]+)\[\^/g,"?)\\.?($1(?<=\\.)[^\\.")}/*$`),a])&&o}),routes:t,async handle(e,...r){let o,p,a=new URL(e.url);e.query=y(a.searchParams);for(let[u,s,R]of t)if((u===e.method||u==="ALL")&&(p=a.pathname.match(s))){e.params=p.groups;for(let l of R)if((o=await l(e.proxy||e,...r))!==void 0)return o}}});export{i as Router};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itty-router",
3
- "version": "3.0.0-next.4",
3
+ "version": "3.0.0-next.6",
4
4
  "description": "Tiny, zero-dependency API router - built for Cloudflare Workers, but works everywhere!",
5
5
  "sourceType": "module",
6
6
  "main": "./dist/itty-router.js",
@@ -41,7 +41,7 @@
41
41
  "dev": "yarn test",
42
42
  "prerelease": "yarn verify",
43
43
  "prebuild": "rimraf dist && mkdir dist",
44
- "build": "tsup src/itty-router.ts --format cjs,esm --dts --clean",
44
+ "build": "tsup src/itty-router.ts --format cjs,esm --dts --minify --clean",
45
45
  "postbuild": "node check-size.js",
46
46
  "release": "release --tag --push --patch",
47
47
  "prerelease:next": "yarn verify",