clear-router 2.5.12 → 2.5.14
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/README.md +2 -0
- package/dist/{bindings-CDGLuAq4.cjs → bindings-CLsZjOEy.cjs} +8 -1
- package/dist/{bindings-B6x2HfzP.mjs → bindings-XLDXFpHZ.mjs} +8 -1
- package/dist/core/index.cjs +2 -2
- package/dist/core/index.d.cts +1 -1
- package/dist/core/index.d.mts +1 -1
- package/dist/core/index.mjs +2 -2
- package/dist/decorators/index.cjs +1 -1
- package/dist/decorators/index.mjs +1 -1
- package/dist/decorators/setup.cjs +2 -2
- package/dist/decorators/setup.d.mts +0 -1
- package/dist/decorators/setup.mjs +2 -2
- package/dist/express/index.cjs +16 -13
- package/dist/express/index.d.cts +11 -9
- package/dist/express/index.d.mts +11 -9
- package/dist/express/index.mjs +16 -13
- package/dist/fastify/index.cjs +18 -15
- package/dist/fastify/index.d.cts +11 -9
- package/dist/fastify/index.d.mts +11 -9
- package/dist/fastify/index.mjs +18 -15
- package/dist/h3/index.cjs +16 -13
- package/dist/h3/index.d.cts +11 -9
- package/dist/h3/index.d.mts +11 -9
- package/dist/h3/index.mjs +16 -13
- package/dist/hono/index.cjs +16 -13
- package/dist/hono/index.d.cts +11 -9
- package/dist/hono/index.d.mts +11 -9
- package/dist/hono/index.mjs +16 -13
- package/dist/index.cjs +114 -13
- package/dist/index.d.cts +54 -25
- package/dist/index.d.mts +54 -25
- package/dist/index.mjs +114 -13
- package/dist/koa/index.cjs +16 -13
- package/dist/koa/index.d.cts +11 -9
- package/dist/koa/index.d.mts +11 -9
- package/dist/koa/index.mjs +16 -13
- package/dist/{responses-DuZeRyGE.mjs → responses-BvETUeDL.mjs} +1 -1
- package/dist/{responses-CBP3RYjJ.cjs → responses-Bvnk0uvc.cjs} +1 -1
- package/dist/{router-91xVPlV0.d.mts → router-Bk8mXRu1.d.mts} +53 -24
- package/dist/{router-DPJfzvy5.cjs → router-CAnd539U.cjs} +107 -13
- package/dist/{router-BkJMl4xv.mjs → router-DSq9dtuQ.mjs} +107 -13
- package/dist/{router-35iBbCaF.d.cts → router-jwZwD8ZT.d.cts} +53 -24
- package/dist/types/Route.d.mts +16 -1
- package/dist/types/core/Response.d.mts +3 -1
- package/package.json +1 -1
package/dist/hono/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
require('../bindings-
|
|
3
|
-
const require_router = require('../router-
|
|
4
|
-
const require_responses = require('../responses-
|
|
2
|
+
require('../bindings-CLsZjOEy.cjs');
|
|
3
|
+
const require_router = require('../router-CAnd539U.cjs');
|
|
4
|
+
const require_responses = require('../responses-Bvnk0uvc.cjs');
|
|
5
5
|
|
|
6
6
|
//#region src/hono/router.ts
|
|
7
7
|
/**
|
|
@@ -60,7 +60,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
60
60
|
* @param middlewares
|
|
61
61
|
*/
|
|
62
62
|
static add(methods, path, handler, middlewares) {
|
|
63
|
-
super.add(methods, path, handler, middlewares);
|
|
63
|
+
return super.add(methods, path, handler, middlewares);
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* Define a resourceful API controller with standard CRUD routes
|
|
@@ -80,7 +80,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
80
80
|
* @param middlewares
|
|
81
81
|
*/
|
|
82
82
|
static get(path, handler, middlewares) {
|
|
83
|
-
super.get(path, handler, middlewares);
|
|
83
|
+
return super.get(path, handler, middlewares);
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* Define a POST route
|
|
@@ -90,7 +90,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
90
90
|
* @param middlewares
|
|
91
91
|
*/
|
|
92
92
|
static post(path, handler, middlewares) {
|
|
93
|
-
super.post(path, handler, middlewares);
|
|
93
|
+
return super.post(path, handler, middlewares);
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
96
|
* Define a PUT route
|
|
@@ -100,7 +100,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
100
100
|
* @param middlewares
|
|
101
101
|
*/
|
|
102
102
|
static put(path, handler, middlewares) {
|
|
103
|
-
super.put(path, handler, middlewares);
|
|
103
|
+
return super.put(path, handler, middlewares);
|
|
104
104
|
}
|
|
105
105
|
/**
|
|
106
106
|
* Define a DELETE route
|
|
@@ -110,7 +110,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
110
110
|
* @param middlewares
|
|
111
111
|
*/
|
|
112
112
|
static delete(path, handler, middlewares) {
|
|
113
|
-
super.delete(path, handler, middlewares);
|
|
113
|
+
return super.delete(path, handler, middlewares);
|
|
114
114
|
}
|
|
115
115
|
/**
|
|
116
116
|
* Define a PATCH route
|
|
@@ -120,7 +120,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
120
120
|
* @param middlewares
|
|
121
121
|
*/
|
|
122
122
|
static patch(path, handler, middlewares) {
|
|
123
|
-
super.patch(path, handler, middlewares);
|
|
123
|
+
return super.patch(path, handler, middlewares);
|
|
124
124
|
}
|
|
125
125
|
/**
|
|
126
126
|
* Define an OPTIONS route
|
|
@@ -130,7 +130,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
130
130
|
* @param middlewares
|
|
131
131
|
*/
|
|
132
132
|
static options(path, handler, middlewares) {
|
|
133
|
-
super.options(path, handler, middlewares);
|
|
133
|
+
return super.options(path, handler, middlewares);
|
|
134
134
|
}
|
|
135
135
|
/**
|
|
136
136
|
* Define a HEAD route
|
|
@@ -140,7 +140,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
140
140
|
* @param middlewares
|
|
141
141
|
*/
|
|
142
142
|
static head(path, handler, middlewares) {
|
|
143
|
-
super.head(path, handler, middlewares);
|
|
143
|
+
return super.head(path, handler, middlewares);
|
|
144
144
|
}
|
|
145
145
|
/**
|
|
146
146
|
* Defines a group of routes with a common prefix.
|
|
@@ -164,6 +164,9 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
164
164
|
static allRoutes(type) {
|
|
165
165
|
return super.allRoutes(type);
|
|
166
166
|
}
|
|
167
|
+
static route(name) {
|
|
168
|
+
return super.route(name);
|
|
169
|
+
}
|
|
167
170
|
/**
|
|
168
171
|
* Apply the defined routes to a Hono application instance
|
|
169
172
|
*
|
|
@@ -203,7 +206,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
203
206
|
];
|
|
204
207
|
if (method === "options" && route.methods.length > 1) continue;
|
|
205
208
|
if (!allowedMethods.includes(method)) throw new Error(`Invalid HTTP method: ${method} for route: ${route.path}`);
|
|
206
|
-
app[method](
|
|
209
|
+
for (const registrationPath of route.registrationPaths) app[method](registrationPath, ...route.middlewares || [], async (context) => {
|
|
207
210
|
const ctx = context;
|
|
208
211
|
const reqBody = await Router.readBodyCached(ctx);
|
|
209
212
|
const override = Router.resolveMethodOverride(ctx.req.method, ctx.req.header(), reqBody);
|
|
@@ -224,7 +227,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
224
227
|
"put",
|
|
225
228
|
"patch",
|
|
226
229
|
"delete"
|
|
227
|
-
].includes(method)) app.post(
|
|
230
|
+
].includes(method)) for (const registrationPath of route.registrationPaths) app.post(registrationPath, ...route.middlewares || [], async (context) => {
|
|
228
231
|
const ctx = context;
|
|
229
232
|
const reqBody = await Router.readBodyCached(ctx);
|
|
230
233
|
if (Router.resolveMethodOverride(ctx.req.method, ctx.req.header(), reqBody) !== method) return;
|
package/dist/hono/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as ControllerAction, E as Response, S as ApiResourceMiddleware, T as HttpMethod, m as Route, p as Request, t as CoreRouter, w as ControllerHandler } from "../router-
|
|
1
|
+
import { C as ControllerAction, E as Response, S as ApiResourceMiddleware, T as HttpMethod, m as Route, p as Request, t as CoreRouter, w as ControllerHandler } from "../router-jwZwD8ZT.cjs";
|
|
2
2
|
import { Context, HonoRequest, MiddlewareHandler } from "hono";
|
|
3
3
|
|
|
4
4
|
//#region types/hono.d.ts
|
|
@@ -36,7 +36,7 @@ declare class Router extends CoreRouter {
|
|
|
36
36
|
* @param handler
|
|
37
37
|
* @param middlewares
|
|
38
38
|
*/
|
|
39
|
-
static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
39
|
+
static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
40
40
|
/**
|
|
41
41
|
* Define a resourceful API controller with standard CRUD routes
|
|
42
42
|
*
|
|
@@ -56,7 +56,7 @@ declare class Router extends CoreRouter {
|
|
|
56
56
|
* @param handler
|
|
57
57
|
* @param middlewares
|
|
58
58
|
*/
|
|
59
|
-
static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
59
|
+
static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
60
60
|
/**
|
|
61
61
|
* Define a POST route
|
|
62
62
|
*
|
|
@@ -64,7 +64,7 @@ declare class Router extends CoreRouter {
|
|
|
64
64
|
* @param handler
|
|
65
65
|
* @param middlewares
|
|
66
66
|
*/
|
|
67
|
-
static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
67
|
+
static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
68
68
|
/**
|
|
69
69
|
* Define a PUT route
|
|
70
70
|
*
|
|
@@ -72,7 +72,7 @@ declare class Router extends CoreRouter {
|
|
|
72
72
|
* @param handler
|
|
73
73
|
* @param middlewares
|
|
74
74
|
*/
|
|
75
|
-
static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
75
|
+
static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
76
76
|
/**
|
|
77
77
|
* Define a DELETE route
|
|
78
78
|
*
|
|
@@ -80,7 +80,7 @@ declare class Router extends CoreRouter {
|
|
|
80
80
|
* @param handler
|
|
81
81
|
* @param middlewares
|
|
82
82
|
*/
|
|
83
|
-
static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
83
|
+
static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
84
84
|
/**
|
|
85
85
|
* Define a PATCH route
|
|
86
86
|
*
|
|
@@ -88,7 +88,7 @@ declare class Router extends CoreRouter {
|
|
|
88
88
|
* @param handler
|
|
89
89
|
* @param middlewares
|
|
90
90
|
*/
|
|
91
|
-
static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
91
|
+
static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
92
92
|
/**
|
|
93
93
|
* Define an OPTIONS route
|
|
94
94
|
*
|
|
@@ -96,7 +96,7 @@ declare class Router extends CoreRouter {
|
|
|
96
96
|
* @param handler
|
|
97
97
|
* @param middlewares
|
|
98
98
|
*/
|
|
99
|
-
static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
99
|
+
static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
100
100
|
/**
|
|
101
101
|
* Define a HEAD route
|
|
102
102
|
*
|
|
@@ -104,7 +104,7 @@ declare class Router extends CoreRouter {
|
|
|
104
104
|
* @param handler
|
|
105
105
|
* @param middlewares
|
|
106
106
|
*/
|
|
107
|
-
static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
107
|
+
static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
108
108
|
/**
|
|
109
109
|
* Defines a group of routes with a common prefix.
|
|
110
110
|
*
|
|
@@ -132,6 +132,8 @@ declare class Router extends CoreRouter {
|
|
|
132
132
|
* @param type - 'method' to get routes organized by method
|
|
133
133
|
*/
|
|
134
134
|
static allRoutes(type: 'method'): { [method in Uppercase<HttpMethod>]?: Array<Route<HttpContext, Middleware, Handler>> };
|
|
135
|
+
static allRoutes(type: 'name'): Record<string, Route<HttpContext, Middleware, Handler>>;
|
|
136
|
+
static route(name: string): Route<HttpContext, Middleware, Handler> | undefined;
|
|
135
137
|
/**
|
|
136
138
|
* Apply the defined routes to a Hono application instance
|
|
137
139
|
*
|
package/dist/hono/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as ControllerAction, E as Response, S as ApiResourceMiddleware, T as HttpMethod, m as Route, p as Request, t as CoreRouter, w as ControllerHandler } from "../router-
|
|
1
|
+
import { C as ControllerAction, E as Response, S as ApiResourceMiddleware, T as HttpMethod, m as Route, p as Request, t as CoreRouter, w as ControllerHandler } from "../router-Bk8mXRu1.mjs";
|
|
2
2
|
import { Context, HonoRequest, MiddlewareHandler } from "hono";
|
|
3
3
|
|
|
4
4
|
//#region types/hono.d.ts
|
|
@@ -36,7 +36,7 @@ declare class Router extends CoreRouter {
|
|
|
36
36
|
* @param handler
|
|
37
37
|
* @param middlewares
|
|
38
38
|
*/
|
|
39
|
-
static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
39
|
+
static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
40
40
|
/**
|
|
41
41
|
* Define a resourceful API controller with standard CRUD routes
|
|
42
42
|
*
|
|
@@ -56,7 +56,7 @@ declare class Router extends CoreRouter {
|
|
|
56
56
|
* @param handler
|
|
57
57
|
* @param middlewares
|
|
58
58
|
*/
|
|
59
|
-
static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
59
|
+
static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
60
60
|
/**
|
|
61
61
|
* Define a POST route
|
|
62
62
|
*
|
|
@@ -64,7 +64,7 @@ declare class Router extends CoreRouter {
|
|
|
64
64
|
* @param handler
|
|
65
65
|
* @param middlewares
|
|
66
66
|
*/
|
|
67
|
-
static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
67
|
+
static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
68
68
|
/**
|
|
69
69
|
* Define a PUT route
|
|
70
70
|
*
|
|
@@ -72,7 +72,7 @@ declare class Router extends CoreRouter {
|
|
|
72
72
|
* @param handler
|
|
73
73
|
* @param middlewares
|
|
74
74
|
*/
|
|
75
|
-
static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
75
|
+
static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
76
76
|
/**
|
|
77
77
|
* Define a DELETE route
|
|
78
78
|
*
|
|
@@ -80,7 +80,7 @@ declare class Router extends CoreRouter {
|
|
|
80
80
|
* @param handler
|
|
81
81
|
* @param middlewares
|
|
82
82
|
*/
|
|
83
|
-
static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
83
|
+
static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
84
84
|
/**
|
|
85
85
|
* Define a PATCH route
|
|
86
86
|
*
|
|
@@ -88,7 +88,7 @@ declare class Router extends CoreRouter {
|
|
|
88
88
|
* @param handler
|
|
89
89
|
* @param middlewares
|
|
90
90
|
*/
|
|
91
|
-
static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
91
|
+
static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
92
92
|
/**
|
|
93
93
|
* Define an OPTIONS route
|
|
94
94
|
*
|
|
@@ -96,7 +96,7 @@ declare class Router extends CoreRouter {
|
|
|
96
96
|
* @param handler
|
|
97
97
|
* @param middlewares
|
|
98
98
|
*/
|
|
99
|
-
static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
99
|
+
static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
100
100
|
/**
|
|
101
101
|
* Define a HEAD route
|
|
102
102
|
*
|
|
@@ -104,7 +104,7 @@ declare class Router extends CoreRouter {
|
|
|
104
104
|
* @param handler
|
|
105
105
|
* @param middlewares
|
|
106
106
|
*/
|
|
107
|
-
static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
107
|
+
static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
108
108
|
/**
|
|
109
109
|
* Defines a group of routes with a common prefix.
|
|
110
110
|
*
|
|
@@ -132,6 +132,8 @@ declare class Router extends CoreRouter {
|
|
|
132
132
|
* @param type - 'method' to get routes organized by method
|
|
133
133
|
*/
|
|
134
134
|
static allRoutes(type: 'method'): { [method in Uppercase<HttpMethod>]?: Array<Route<HttpContext, Middleware, Handler>> };
|
|
135
|
+
static allRoutes(type: 'name'): Record<string, Route<HttpContext, Middleware, Handler>>;
|
|
136
|
+
static route(name: string): Route<HttpContext, Middleware, Handler> | undefined;
|
|
135
137
|
/**
|
|
136
138
|
* Apply the defined routes to a Hono application instance
|
|
137
139
|
*
|
package/dist/hono/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "../bindings-
|
|
2
|
-
import { t as CoreRouter } from "../router-
|
|
3
|
-
import { n as resolveResponseMeta } from "../responses-
|
|
1
|
+
import "../bindings-XLDXFpHZ.mjs";
|
|
2
|
+
import { t as CoreRouter } from "../router-DSq9dtuQ.mjs";
|
|
3
|
+
import { n as resolveResponseMeta } from "../responses-BvETUeDL.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/hono/router.ts
|
|
6
6
|
/**
|
|
@@ -59,7 +59,7 @@ var Router = class Router extends CoreRouter {
|
|
|
59
59
|
* @param middlewares
|
|
60
60
|
*/
|
|
61
61
|
static add(methods, path, handler, middlewares) {
|
|
62
|
-
super.add(methods, path, handler, middlewares);
|
|
62
|
+
return super.add(methods, path, handler, middlewares);
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* Define a resourceful API controller with standard CRUD routes
|
|
@@ -79,7 +79,7 @@ var Router = class Router extends CoreRouter {
|
|
|
79
79
|
* @param middlewares
|
|
80
80
|
*/
|
|
81
81
|
static get(path, handler, middlewares) {
|
|
82
|
-
super.get(path, handler, middlewares);
|
|
82
|
+
return super.get(path, handler, middlewares);
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
85
|
* Define a POST route
|
|
@@ -89,7 +89,7 @@ var Router = class Router extends CoreRouter {
|
|
|
89
89
|
* @param middlewares
|
|
90
90
|
*/
|
|
91
91
|
static post(path, handler, middlewares) {
|
|
92
|
-
super.post(path, handler, middlewares);
|
|
92
|
+
return super.post(path, handler, middlewares);
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
95
95
|
* Define a PUT route
|
|
@@ -99,7 +99,7 @@ var Router = class Router extends CoreRouter {
|
|
|
99
99
|
* @param middlewares
|
|
100
100
|
*/
|
|
101
101
|
static put(path, handler, middlewares) {
|
|
102
|
-
super.put(path, handler, middlewares);
|
|
102
|
+
return super.put(path, handler, middlewares);
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
105
105
|
* Define a DELETE route
|
|
@@ -109,7 +109,7 @@ var Router = class Router extends CoreRouter {
|
|
|
109
109
|
* @param middlewares
|
|
110
110
|
*/
|
|
111
111
|
static delete(path, handler, middlewares) {
|
|
112
|
-
super.delete(path, handler, middlewares);
|
|
112
|
+
return super.delete(path, handler, middlewares);
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
115
|
* Define a PATCH route
|
|
@@ -119,7 +119,7 @@ var Router = class Router extends CoreRouter {
|
|
|
119
119
|
* @param middlewares
|
|
120
120
|
*/
|
|
121
121
|
static patch(path, handler, middlewares) {
|
|
122
|
-
super.patch(path, handler, middlewares);
|
|
122
|
+
return super.patch(path, handler, middlewares);
|
|
123
123
|
}
|
|
124
124
|
/**
|
|
125
125
|
* Define an OPTIONS route
|
|
@@ -129,7 +129,7 @@ var Router = class Router extends CoreRouter {
|
|
|
129
129
|
* @param middlewares
|
|
130
130
|
*/
|
|
131
131
|
static options(path, handler, middlewares) {
|
|
132
|
-
super.options(path, handler, middlewares);
|
|
132
|
+
return super.options(path, handler, middlewares);
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
135
135
|
* Define a HEAD route
|
|
@@ -139,7 +139,7 @@ var Router = class Router extends CoreRouter {
|
|
|
139
139
|
* @param middlewares
|
|
140
140
|
*/
|
|
141
141
|
static head(path, handler, middlewares) {
|
|
142
|
-
super.head(path, handler, middlewares);
|
|
142
|
+
return super.head(path, handler, middlewares);
|
|
143
143
|
}
|
|
144
144
|
/**
|
|
145
145
|
* Defines a group of routes with a common prefix.
|
|
@@ -163,6 +163,9 @@ var Router = class Router extends CoreRouter {
|
|
|
163
163
|
static allRoutes(type) {
|
|
164
164
|
return super.allRoutes(type);
|
|
165
165
|
}
|
|
166
|
+
static route(name) {
|
|
167
|
+
return super.route(name);
|
|
168
|
+
}
|
|
166
169
|
/**
|
|
167
170
|
* Apply the defined routes to a Hono application instance
|
|
168
171
|
*
|
|
@@ -202,7 +205,7 @@ var Router = class Router extends CoreRouter {
|
|
|
202
205
|
];
|
|
203
206
|
if (method === "options" && route.methods.length > 1) continue;
|
|
204
207
|
if (!allowedMethods.includes(method)) throw new Error(`Invalid HTTP method: ${method} for route: ${route.path}`);
|
|
205
|
-
app[method](
|
|
208
|
+
for (const registrationPath of route.registrationPaths) app[method](registrationPath, ...route.middlewares || [], async (context) => {
|
|
206
209
|
const ctx = context;
|
|
207
210
|
const reqBody = await Router.readBodyCached(ctx);
|
|
208
211
|
const override = Router.resolveMethodOverride(ctx.req.method, ctx.req.header(), reqBody);
|
|
@@ -223,7 +226,7 @@ var Router = class Router extends CoreRouter {
|
|
|
223
226
|
"put",
|
|
224
227
|
"patch",
|
|
225
228
|
"delete"
|
|
226
|
-
].includes(method)) app.post(
|
|
229
|
+
].includes(method)) for (const registrationPath of route.registrationPaths) app.post(registrationPath, ...route.middlewares || [], async (context) => {
|
|
227
230
|
const ctx = context;
|
|
228
231
|
const reqBody = await Router.readBodyCached(ctx);
|
|
229
232
|
if (Router.resolveMethodOverride(ctx.req.method, ctx.req.header(), reqBody) !== method) return;
|
package/dist/index.cjs
CHANGED
|
@@ -41,21 +41,49 @@ var Route = class {
|
|
|
41
41
|
clearRequest;
|
|
42
42
|
methods;
|
|
43
43
|
path;
|
|
44
|
+
registrationPaths;
|
|
45
|
+
parameters;
|
|
46
|
+
routeName;
|
|
44
47
|
handler;
|
|
45
48
|
middlewares;
|
|
46
49
|
controllerName;
|
|
47
50
|
actionName;
|
|
48
51
|
handlerType;
|
|
49
52
|
middlewareCount;
|
|
50
|
-
constructor(methods, path, handler, middlewares = []) {
|
|
53
|
+
constructor(methods, path, handler, middlewares = [], options = {}) {
|
|
51
54
|
this.methods = methods;
|
|
52
55
|
this.path = path;
|
|
56
|
+
this.registrationPaths = options.registrationPaths || [path];
|
|
57
|
+
this.parameters = options.parameters || [];
|
|
53
58
|
this.handler = handler;
|
|
54
59
|
this.middlewares = middlewares;
|
|
55
60
|
this.handlerType = Array.isArray(handler) ? "controller" : "function";
|
|
56
61
|
this.middlewareCount = middlewares.length;
|
|
57
62
|
this.controllerName = Array.isArray(handler) ? handler[0]?.name : void 0;
|
|
58
63
|
this.actionName = Array.isArray(handler) ? handler[1] : typeof handler === "function" ? handler.constructor.name ?? handler.name : void 0;
|
|
64
|
+
this.onName = options.onName;
|
|
65
|
+
}
|
|
66
|
+
onName;
|
|
67
|
+
name(name) {
|
|
68
|
+
const previousName = this.routeName;
|
|
69
|
+
this.routeName = name;
|
|
70
|
+
this.onName?.(name, this, previousName);
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
toPath(params = {}) {
|
|
74
|
+
return this.path.replace(/\/?\{([^{}]+)\}/g, (segment, raw) => {
|
|
75
|
+
const optional = raw.endsWith("?");
|
|
76
|
+
const [rawName, rawField] = (optional ? raw.slice(0, -1) : raw).split(":", 2);
|
|
77
|
+
const name = rawName.trim();
|
|
78
|
+
const field = rawField?.trim();
|
|
79
|
+
const value = params[name];
|
|
80
|
+
const resolved = field && value && typeof value === "object" ? value[field] : value;
|
|
81
|
+
if (typeof resolved === "undefined" || resolved === null || resolved === "") {
|
|
82
|
+
if (optional) return "";
|
|
83
|
+
throw new Error(`Missing required route parameter: ${name}`);
|
|
84
|
+
}
|
|
85
|
+
return `${segment.startsWith("/") ? "/" : ""}${encodeURIComponent(String(resolved))}`;
|
|
86
|
+
}) || "/";
|
|
59
87
|
}
|
|
60
88
|
};
|
|
61
89
|
|
|
@@ -98,14 +126,21 @@ var Response = class {
|
|
|
98
126
|
headers = new Headers();
|
|
99
127
|
sent = false;
|
|
100
128
|
statusCode = 200;
|
|
129
|
+
statusText = "OK";
|
|
101
130
|
constructor(init) {
|
|
102
|
-
|
|
131
|
+
const { status: _, ...rest } = init ?? {};
|
|
132
|
+
Object.assign(this, rest);
|
|
103
133
|
if (init?.headers && !(init.headers instanceof Headers)) this.headers = new Headers(init.headers);
|
|
134
|
+
if (init?.status && typeof init.status === "number") this.statusCode = init?.status;
|
|
104
135
|
}
|
|
105
136
|
status(code) {
|
|
106
137
|
this.statusCode = code;
|
|
107
138
|
return this;
|
|
108
139
|
}
|
|
140
|
+
setStatusText(text) {
|
|
141
|
+
this.statusText = text;
|
|
142
|
+
return this;
|
|
143
|
+
}
|
|
109
144
|
code(code) {
|
|
110
145
|
return this.status(code);
|
|
111
146
|
}
|
|
@@ -327,6 +362,7 @@ var CoreRouter = class {
|
|
|
327
362
|
routes: [],
|
|
328
363
|
routesByPathMethod: {},
|
|
329
364
|
routesByMethod: {},
|
|
365
|
+
routesByName: {},
|
|
330
366
|
prefix: "",
|
|
331
367
|
groupMiddlewares: [],
|
|
332
368
|
globalMiddlewares: []
|
|
@@ -343,6 +379,7 @@ var CoreRouter = class {
|
|
|
343
379
|
"routes",
|
|
344
380
|
"routesByPathMethod",
|
|
345
381
|
"routesByMethod",
|
|
382
|
+
"routesByName",
|
|
346
383
|
"prefix",
|
|
347
384
|
"groupMiddlewares",
|
|
348
385
|
"globalMiddlewares"
|
|
@@ -475,6 +512,7 @@ var CoreRouter = class {
|
|
|
475
512
|
static routes = [];
|
|
476
513
|
static routesByPathMethod = {};
|
|
477
514
|
static routesByMethod = {};
|
|
515
|
+
static routesByName = {};
|
|
478
516
|
static prefix = "";
|
|
479
517
|
static groupMiddlewares = [];
|
|
480
518
|
static globalMiddlewares = [];
|
|
@@ -526,6 +564,7 @@ var CoreRouter = class {
|
|
|
526
564
|
if (!Array.isArray(this.routes)) this.routes = [];
|
|
527
565
|
if (!this.routesByPathMethod || typeof this.routesByPathMethod !== "object") this.routesByPathMethod = {};
|
|
528
566
|
if (!this.routesByMethod || typeof this.routesByMethod !== "object") this.routesByMethod = {};
|
|
567
|
+
if (!this.routesByName || typeof this.routesByName !== "object") this.routesByName = {};
|
|
529
568
|
if (typeof this.prefix !== "string") this.prefix = "";
|
|
530
569
|
if (!Array.isArray(this.groupMiddlewares)) this.groupMiddlewares = [];
|
|
531
570
|
if (!Array.isArray(this.globalMiddlewares)) this.globalMiddlewares = [];
|
|
@@ -540,6 +579,47 @@ var CoreRouter = class {
|
|
|
540
579
|
static normalizePath(path) {
|
|
541
580
|
return "/" + path.split("/").filter(Boolean).join("/");
|
|
542
581
|
}
|
|
582
|
+
static parseRouteParameters(path) {
|
|
583
|
+
const parameters = [];
|
|
584
|
+
const seen = /* @__PURE__ */ new Set();
|
|
585
|
+
const pattern = /\{([^{}]+)\}/g;
|
|
586
|
+
let match;
|
|
587
|
+
while ((match = pattern.exec(path)) !== null) {
|
|
588
|
+
const raw = match[1].trim();
|
|
589
|
+
const optional = raw.endsWith("?");
|
|
590
|
+
const [name, field] = (optional ? raw.slice(0, -1) : raw).split(":", 2).map((part) => part.trim());
|
|
591
|
+
if (!name || seen.has(name)) continue;
|
|
592
|
+
seen.add(name);
|
|
593
|
+
parameters.push({
|
|
594
|
+
name,
|
|
595
|
+
field: field || void 0,
|
|
596
|
+
optional
|
|
597
|
+
});
|
|
598
|
+
}
|
|
599
|
+
return parameters;
|
|
600
|
+
}
|
|
601
|
+
static expandRoutePath(path) {
|
|
602
|
+
let paths = [""];
|
|
603
|
+
const segments = this.normalizePath(path).split("/").filter(Boolean);
|
|
604
|
+
for (const segment of segments) {
|
|
605
|
+
const match = segment.match(/^\{([^{}]+)\}$/);
|
|
606
|
+
if (!match) {
|
|
607
|
+
paths = paths.map((current) => `${current}/${segment}`);
|
|
608
|
+
continue;
|
|
609
|
+
}
|
|
610
|
+
const raw = match[1].trim();
|
|
611
|
+
const optional = raw.endsWith("?");
|
|
612
|
+
const [rawName] = (optional ? raw.slice(0, -1) : raw).split(":", 2);
|
|
613
|
+
const name = rawName.trim();
|
|
614
|
+
if (!name) continue;
|
|
615
|
+
const parameterSegment = `/:${name}`;
|
|
616
|
+
paths = optional ? paths.flatMap((current) => [current, `${current}${parameterSegment}`]) : paths.map((current) => `${current}${parameterSegment}`);
|
|
617
|
+
}
|
|
618
|
+
return paths.map((path) => path || "/");
|
|
619
|
+
}
|
|
620
|
+
static routeRegistrationPaths(path) {
|
|
621
|
+
return this.expandRoutePath(path);
|
|
622
|
+
}
|
|
543
623
|
/**
|
|
544
624
|
* Configures the router with the given options, such as method override settings.
|
|
545
625
|
*
|
|
@@ -613,11 +693,20 @@ var CoreRouter = class {
|
|
|
613
693
|
methods = Array.isArray(methods) ? methods : [methods];
|
|
614
694
|
middlewares = middlewares ? Array.isArray(middlewares) ? middlewares : [middlewares] : void 0;
|
|
615
695
|
const fullPath = this.normalizePath(`${activePrefix}/${path}`);
|
|
696
|
+
const registrationPaths = this.routeRegistrationPaths(fullPath);
|
|
697
|
+
const parameters = this.parseRouteParameters(fullPath);
|
|
616
698
|
const route = new Route(methods.includes("options") ? methods : methods.concat("options"), fullPath, handler, [
|
|
617
699
|
...this.globalMiddlewares,
|
|
618
700
|
...activeGroupMiddlewares,
|
|
619
701
|
...middlewares || []
|
|
620
|
-
]
|
|
702
|
+
], {
|
|
703
|
+
registrationPaths,
|
|
704
|
+
parameters,
|
|
705
|
+
onName: (name, route, previousName) => {
|
|
706
|
+
if (previousName && this.routesByName[previousName] === route) delete this.routesByName[previousName];
|
|
707
|
+
this.routesByName[name] = route;
|
|
708
|
+
}
|
|
709
|
+
});
|
|
621
710
|
if (!methods.includes("options") && !this.routesByPathMethod[`OPTIONS ${fullPath}`]) this.options(path, this.createDefaultOptionsHandler());
|
|
622
711
|
this.routes.push(route);
|
|
623
712
|
for (const method of methods.map((m) => m.toUpperCase())) {
|
|
@@ -625,6 +714,7 @@ var CoreRouter = class {
|
|
|
625
714
|
if (!this.routesByMethod[method]) this.routesByMethod[method] = [];
|
|
626
715
|
this.routesByMethod[method].push(route);
|
|
627
716
|
}
|
|
717
|
+
return route;
|
|
628
718
|
}
|
|
629
719
|
/**
|
|
630
720
|
* Define a resourceful API controller with standard CRUD routes.
|
|
@@ -678,7 +768,7 @@ var CoreRouter = class {
|
|
|
678
768
|
* @param middlewares Optional middlewares to apply to the GET route.
|
|
679
769
|
*/
|
|
680
770
|
static get(path, handler, middlewares) {
|
|
681
|
-
this.add("get", path, handler, middlewares);
|
|
771
|
+
return this.add("get", path, handler, middlewares);
|
|
682
772
|
}
|
|
683
773
|
/**
|
|
684
774
|
* Adds a new POST route to the router.
|
|
@@ -689,7 +779,7 @@ var CoreRouter = class {
|
|
|
689
779
|
* @param middlewares
|
|
690
780
|
*/
|
|
691
781
|
static post(path, handler, middlewares) {
|
|
692
|
-
this.add("post", path, handler, middlewares);
|
|
782
|
+
return this.add("post", path, handler, middlewares);
|
|
693
783
|
}
|
|
694
784
|
/**
|
|
695
785
|
* Adds a new PUT route to the router.
|
|
@@ -700,7 +790,7 @@ var CoreRouter = class {
|
|
|
700
790
|
* @param middlewares
|
|
701
791
|
*/
|
|
702
792
|
static put(path, handler, middlewares) {
|
|
703
|
-
this.add("put", path, handler, middlewares);
|
|
793
|
+
return this.add("put", path, handler, middlewares);
|
|
704
794
|
}
|
|
705
795
|
/**
|
|
706
796
|
* Adds a new DELETE route to the router.
|
|
@@ -711,7 +801,7 @@ var CoreRouter = class {
|
|
|
711
801
|
* @param middlewares
|
|
712
802
|
*/
|
|
713
803
|
static delete(path, handler, middlewares) {
|
|
714
|
-
this.add("delete", path, handler, middlewares);
|
|
804
|
+
return this.add("delete", path, handler, middlewares);
|
|
715
805
|
}
|
|
716
806
|
/**
|
|
717
807
|
* Adds a new PATCH route to the router.
|
|
@@ -722,7 +812,7 @@ var CoreRouter = class {
|
|
|
722
812
|
* @param middlewares
|
|
723
813
|
*/
|
|
724
814
|
static patch(path, handler, middlewares) {
|
|
725
|
-
this.add("patch", path, handler, middlewares);
|
|
815
|
+
return this.add("patch", path, handler, middlewares);
|
|
726
816
|
}
|
|
727
817
|
/**
|
|
728
818
|
* Adds a new OPTIONS route to the router.
|
|
@@ -733,7 +823,7 @@ var CoreRouter = class {
|
|
|
733
823
|
* @param middlewares
|
|
734
824
|
*/
|
|
735
825
|
static options(path, handler, middlewares) {
|
|
736
|
-
this.add("options", path, handler, middlewares);
|
|
826
|
+
return this.add("options", path, handler, middlewares);
|
|
737
827
|
}
|
|
738
828
|
/**
|
|
739
829
|
* Adds a new HEAD route to the router.
|
|
@@ -744,7 +834,7 @@ var CoreRouter = class {
|
|
|
744
834
|
* @param middlewares
|
|
745
835
|
*/
|
|
746
836
|
static head(path, handler, middlewares) {
|
|
747
|
-
this.add("head", path, handler, middlewares);
|
|
837
|
+
return this.add("head", path, handler, middlewares);
|
|
748
838
|
}
|
|
749
839
|
/**
|
|
750
840
|
* Defines a group of routes with a common prefix.
|
|
@@ -786,8 +876,16 @@ var CoreRouter = class {
|
|
|
786
876
|
this.ensureState();
|
|
787
877
|
if (type === "method") return this.routesByMethod;
|
|
788
878
|
if (type === "path") return this.routesByPathMethod;
|
|
879
|
+
if (type === "name") return this.routesByName;
|
|
789
880
|
return this.routes.filter((e) => e.methods.length > 1 || e.methods[0] !== "options");
|
|
790
881
|
}
|
|
882
|
+
static route(name) {
|
|
883
|
+
this.ensureState();
|
|
884
|
+
return this.routesByName[name];
|
|
885
|
+
}
|
|
886
|
+
static url(name, params) {
|
|
887
|
+
return this.route(name)?.toPath(params);
|
|
888
|
+
}
|
|
791
889
|
static resolveHandler(route) {
|
|
792
890
|
let handlerFunction;
|
|
793
891
|
let instance = null;
|
|
@@ -854,8 +952,7 @@ var CoreRouter = class {
|
|
|
854
952
|
designTokens
|
|
855
953
|
});
|
|
856
954
|
if (pluginArgs) return handlerFunction(...pluginArgs);
|
|
857
|
-
if (!metadata) return handlerFunction(ctx, ctx.clearRequest);
|
|
858
|
-
if (!tokens.length) return handlerFunction(ctx, ctx.clearRequest);
|
|
955
|
+
if (!metadata || !tokens.length) return handlerFunction(ctx, ctx.clearRequest);
|
|
859
956
|
const args = [];
|
|
860
957
|
for (const token of tokens) {
|
|
861
958
|
const resolved = await Container.resolve(token, ctx, Boolean(this.config.container?.autoDiscover));
|
|
@@ -884,7 +981,11 @@ var CoreRouter = class {
|
|
|
884
981
|
clearRequest.query = payload.query;
|
|
885
982
|
clearRequest.params = payload.params;
|
|
886
983
|
ctx.clearRequest = clearRequest;
|
|
887
|
-
|
|
984
|
+
Container.bind(Request, ctx.clearRequest);
|
|
985
|
+
if (!(ctx.clearResponse instanceof Response)) {
|
|
986
|
+
ctx.clearResponse = new Response(ctx.response ?? ctx.reply ?? ctx.res);
|
|
987
|
+
Container.bind(Response, ctx.clearResponse);
|
|
988
|
+
}
|
|
888
989
|
if (!instance) return;
|
|
889
990
|
instance.ctx = ctx;
|
|
890
991
|
instance.body = payload.body;
|