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.
- package/dist/itty-router.d.ts +1 -1
- package/dist/itty-router.js +1 -57
- package/dist/itty-router.mjs +1 -33
- package/package.json +2 -2
package/dist/itty-router.d.ts
CHANGED
|
@@ -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
|
|
31
|
+
declare const Router: ({ base, routes }?: RouterOptions) => RouterType;
|
|
32
32
|
|
|
33
33
|
export { RequestLike, RequestTraps, Route, RouteEntry, RouteHandler, Router, RouterOptions, RouterTraps, RouterType };
|
package/dist/itty-router.js
CHANGED
|
@@ -1,57 +1 @@
|
|
|
1
|
-
var
|
|
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});
|
package/dist/itty-router.mjs
CHANGED
|
@@ -1,33 +1 @@
|
|
|
1
|
-
|
|
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.
|
|
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",
|