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/index.mjs
CHANGED
|
@@ -40,21 +40,49 @@ var Route = class {
|
|
|
40
40
|
clearRequest;
|
|
41
41
|
methods;
|
|
42
42
|
path;
|
|
43
|
+
registrationPaths;
|
|
44
|
+
parameters;
|
|
45
|
+
routeName;
|
|
43
46
|
handler;
|
|
44
47
|
middlewares;
|
|
45
48
|
controllerName;
|
|
46
49
|
actionName;
|
|
47
50
|
handlerType;
|
|
48
51
|
middlewareCount;
|
|
49
|
-
constructor(methods, path, handler, middlewares = []) {
|
|
52
|
+
constructor(methods, path, handler, middlewares = [], options = {}) {
|
|
50
53
|
this.methods = methods;
|
|
51
54
|
this.path = path;
|
|
55
|
+
this.registrationPaths = options.registrationPaths || [path];
|
|
56
|
+
this.parameters = options.parameters || [];
|
|
52
57
|
this.handler = handler;
|
|
53
58
|
this.middlewares = middlewares;
|
|
54
59
|
this.handlerType = Array.isArray(handler) ? "controller" : "function";
|
|
55
60
|
this.middlewareCount = middlewares.length;
|
|
56
61
|
this.controllerName = Array.isArray(handler) ? handler[0]?.name : void 0;
|
|
57
62
|
this.actionName = Array.isArray(handler) ? handler[1] : typeof handler === "function" ? handler.constructor.name ?? handler.name : void 0;
|
|
63
|
+
this.onName = options.onName;
|
|
64
|
+
}
|
|
65
|
+
onName;
|
|
66
|
+
name(name) {
|
|
67
|
+
const previousName = this.routeName;
|
|
68
|
+
this.routeName = name;
|
|
69
|
+
this.onName?.(name, this, previousName);
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
toPath(params = {}) {
|
|
73
|
+
return this.path.replace(/\/?\{([^{}]+)\}/g, (segment, raw) => {
|
|
74
|
+
const optional = raw.endsWith("?");
|
|
75
|
+
const [rawName, rawField] = (optional ? raw.slice(0, -1) : raw).split(":", 2);
|
|
76
|
+
const name = rawName.trim();
|
|
77
|
+
const field = rawField?.trim();
|
|
78
|
+
const value = params[name];
|
|
79
|
+
const resolved = field && value && typeof value === "object" ? value[field] : value;
|
|
80
|
+
if (typeof resolved === "undefined" || resolved === null || resolved === "") {
|
|
81
|
+
if (optional) return "";
|
|
82
|
+
throw new Error(`Missing required route parameter: ${name}`);
|
|
83
|
+
}
|
|
84
|
+
return `${segment.startsWith("/") ? "/" : ""}${encodeURIComponent(String(resolved))}`;
|
|
85
|
+
}) || "/";
|
|
58
86
|
}
|
|
59
87
|
};
|
|
60
88
|
|
|
@@ -97,14 +125,21 @@ var Response = class {
|
|
|
97
125
|
headers = new Headers();
|
|
98
126
|
sent = false;
|
|
99
127
|
statusCode = 200;
|
|
128
|
+
statusText = "OK";
|
|
100
129
|
constructor(init) {
|
|
101
|
-
|
|
130
|
+
const { status: _, ...rest } = init ?? {};
|
|
131
|
+
Object.assign(this, rest);
|
|
102
132
|
if (init?.headers && !(init.headers instanceof Headers)) this.headers = new Headers(init.headers);
|
|
133
|
+
if (init?.status && typeof init.status === "number") this.statusCode = init?.status;
|
|
103
134
|
}
|
|
104
135
|
status(code) {
|
|
105
136
|
this.statusCode = code;
|
|
106
137
|
return this;
|
|
107
138
|
}
|
|
139
|
+
setStatusText(text) {
|
|
140
|
+
this.statusText = text;
|
|
141
|
+
return this;
|
|
142
|
+
}
|
|
108
143
|
code(code) {
|
|
109
144
|
return this.status(code);
|
|
110
145
|
}
|
|
@@ -326,6 +361,7 @@ var CoreRouter = class {
|
|
|
326
361
|
routes: [],
|
|
327
362
|
routesByPathMethod: {},
|
|
328
363
|
routesByMethod: {},
|
|
364
|
+
routesByName: {},
|
|
329
365
|
prefix: "",
|
|
330
366
|
groupMiddlewares: [],
|
|
331
367
|
globalMiddlewares: []
|
|
@@ -342,6 +378,7 @@ var CoreRouter = class {
|
|
|
342
378
|
"routes",
|
|
343
379
|
"routesByPathMethod",
|
|
344
380
|
"routesByMethod",
|
|
381
|
+
"routesByName",
|
|
345
382
|
"prefix",
|
|
346
383
|
"groupMiddlewares",
|
|
347
384
|
"globalMiddlewares"
|
|
@@ -474,6 +511,7 @@ var CoreRouter = class {
|
|
|
474
511
|
static routes = [];
|
|
475
512
|
static routesByPathMethod = {};
|
|
476
513
|
static routesByMethod = {};
|
|
514
|
+
static routesByName = {};
|
|
477
515
|
static prefix = "";
|
|
478
516
|
static groupMiddlewares = [];
|
|
479
517
|
static globalMiddlewares = [];
|
|
@@ -525,6 +563,7 @@ var CoreRouter = class {
|
|
|
525
563
|
if (!Array.isArray(this.routes)) this.routes = [];
|
|
526
564
|
if (!this.routesByPathMethod || typeof this.routesByPathMethod !== "object") this.routesByPathMethod = {};
|
|
527
565
|
if (!this.routesByMethod || typeof this.routesByMethod !== "object") this.routesByMethod = {};
|
|
566
|
+
if (!this.routesByName || typeof this.routesByName !== "object") this.routesByName = {};
|
|
528
567
|
if (typeof this.prefix !== "string") this.prefix = "";
|
|
529
568
|
if (!Array.isArray(this.groupMiddlewares)) this.groupMiddlewares = [];
|
|
530
569
|
if (!Array.isArray(this.globalMiddlewares)) this.globalMiddlewares = [];
|
|
@@ -539,6 +578,47 @@ var CoreRouter = class {
|
|
|
539
578
|
static normalizePath(path) {
|
|
540
579
|
return "/" + path.split("/").filter(Boolean).join("/");
|
|
541
580
|
}
|
|
581
|
+
static parseRouteParameters(path) {
|
|
582
|
+
const parameters = [];
|
|
583
|
+
const seen = /* @__PURE__ */ new Set();
|
|
584
|
+
const pattern = /\{([^{}]+)\}/g;
|
|
585
|
+
let match;
|
|
586
|
+
while ((match = pattern.exec(path)) !== null) {
|
|
587
|
+
const raw = match[1].trim();
|
|
588
|
+
const optional = raw.endsWith("?");
|
|
589
|
+
const [name, field] = (optional ? raw.slice(0, -1) : raw).split(":", 2).map((part) => part.trim());
|
|
590
|
+
if (!name || seen.has(name)) continue;
|
|
591
|
+
seen.add(name);
|
|
592
|
+
parameters.push({
|
|
593
|
+
name,
|
|
594
|
+
field: field || void 0,
|
|
595
|
+
optional
|
|
596
|
+
});
|
|
597
|
+
}
|
|
598
|
+
return parameters;
|
|
599
|
+
}
|
|
600
|
+
static expandRoutePath(path) {
|
|
601
|
+
let paths = [""];
|
|
602
|
+
const segments = this.normalizePath(path).split("/").filter(Boolean);
|
|
603
|
+
for (const segment of segments) {
|
|
604
|
+
const match = segment.match(/^\{([^{}]+)\}$/);
|
|
605
|
+
if (!match) {
|
|
606
|
+
paths = paths.map((current) => `${current}/${segment}`);
|
|
607
|
+
continue;
|
|
608
|
+
}
|
|
609
|
+
const raw = match[1].trim();
|
|
610
|
+
const optional = raw.endsWith("?");
|
|
611
|
+
const [rawName] = (optional ? raw.slice(0, -1) : raw).split(":", 2);
|
|
612
|
+
const name = rawName.trim();
|
|
613
|
+
if (!name) continue;
|
|
614
|
+
const parameterSegment = `/:${name}`;
|
|
615
|
+
paths = optional ? paths.flatMap((current) => [current, `${current}${parameterSegment}`]) : paths.map((current) => `${current}${parameterSegment}`);
|
|
616
|
+
}
|
|
617
|
+
return paths.map((path) => path || "/");
|
|
618
|
+
}
|
|
619
|
+
static routeRegistrationPaths(path) {
|
|
620
|
+
return this.expandRoutePath(path);
|
|
621
|
+
}
|
|
542
622
|
/**
|
|
543
623
|
* Configures the router with the given options, such as method override settings.
|
|
544
624
|
*
|
|
@@ -612,11 +692,20 @@ var CoreRouter = class {
|
|
|
612
692
|
methods = Array.isArray(methods) ? methods : [methods];
|
|
613
693
|
middlewares = middlewares ? Array.isArray(middlewares) ? middlewares : [middlewares] : void 0;
|
|
614
694
|
const fullPath = this.normalizePath(`${activePrefix}/${path}`);
|
|
695
|
+
const registrationPaths = this.routeRegistrationPaths(fullPath);
|
|
696
|
+
const parameters = this.parseRouteParameters(fullPath);
|
|
615
697
|
const route = new Route(methods.includes("options") ? methods : methods.concat("options"), fullPath, handler, [
|
|
616
698
|
...this.globalMiddlewares,
|
|
617
699
|
...activeGroupMiddlewares,
|
|
618
700
|
...middlewares || []
|
|
619
|
-
]
|
|
701
|
+
], {
|
|
702
|
+
registrationPaths,
|
|
703
|
+
parameters,
|
|
704
|
+
onName: (name, route, previousName) => {
|
|
705
|
+
if (previousName && this.routesByName[previousName] === route) delete this.routesByName[previousName];
|
|
706
|
+
this.routesByName[name] = route;
|
|
707
|
+
}
|
|
708
|
+
});
|
|
620
709
|
if (!methods.includes("options") && !this.routesByPathMethod[`OPTIONS ${fullPath}`]) this.options(path, this.createDefaultOptionsHandler());
|
|
621
710
|
this.routes.push(route);
|
|
622
711
|
for (const method of methods.map((m) => m.toUpperCase())) {
|
|
@@ -624,6 +713,7 @@ var CoreRouter = class {
|
|
|
624
713
|
if (!this.routesByMethod[method]) this.routesByMethod[method] = [];
|
|
625
714
|
this.routesByMethod[method].push(route);
|
|
626
715
|
}
|
|
716
|
+
return route;
|
|
627
717
|
}
|
|
628
718
|
/**
|
|
629
719
|
* Define a resourceful API controller with standard CRUD routes.
|
|
@@ -677,7 +767,7 @@ var CoreRouter = class {
|
|
|
677
767
|
* @param middlewares Optional middlewares to apply to the GET route.
|
|
678
768
|
*/
|
|
679
769
|
static get(path, handler, middlewares) {
|
|
680
|
-
this.add("get", path, handler, middlewares);
|
|
770
|
+
return this.add("get", path, handler, middlewares);
|
|
681
771
|
}
|
|
682
772
|
/**
|
|
683
773
|
* Adds a new POST route to the router.
|
|
@@ -688,7 +778,7 @@ var CoreRouter = class {
|
|
|
688
778
|
* @param middlewares
|
|
689
779
|
*/
|
|
690
780
|
static post(path, handler, middlewares) {
|
|
691
|
-
this.add("post", path, handler, middlewares);
|
|
781
|
+
return this.add("post", path, handler, middlewares);
|
|
692
782
|
}
|
|
693
783
|
/**
|
|
694
784
|
* Adds a new PUT route to the router.
|
|
@@ -699,7 +789,7 @@ var CoreRouter = class {
|
|
|
699
789
|
* @param middlewares
|
|
700
790
|
*/
|
|
701
791
|
static put(path, handler, middlewares) {
|
|
702
|
-
this.add("put", path, handler, middlewares);
|
|
792
|
+
return this.add("put", path, handler, middlewares);
|
|
703
793
|
}
|
|
704
794
|
/**
|
|
705
795
|
* Adds a new DELETE route to the router.
|
|
@@ -710,7 +800,7 @@ var CoreRouter = class {
|
|
|
710
800
|
* @param middlewares
|
|
711
801
|
*/
|
|
712
802
|
static delete(path, handler, middlewares) {
|
|
713
|
-
this.add("delete", path, handler, middlewares);
|
|
803
|
+
return this.add("delete", path, handler, middlewares);
|
|
714
804
|
}
|
|
715
805
|
/**
|
|
716
806
|
* Adds a new PATCH route to the router.
|
|
@@ -721,7 +811,7 @@ var CoreRouter = class {
|
|
|
721
811
|
* @param middlewares
|
|
722
812
|
*/
|
|
723
813
|
static patch(path, handler, middlewares) {
|
|
724
|
-
this.add("patch", path, handler, middlewares);
|
|
814
|
+
return this.add("patch", path, handler, middlewares);
|
|
725
815
|
}
|
|
726
816
|
/**
|
|
727
817
|
* Adds a new OPTIONS route to the router.
|
|
@@ -732,7 +822,7 @@ var CoreRouter = class {
|
|
|
732
822
|
* @param middlewares
|
|
733
823
|
*/
|
|
734
824
|
static options(path, handler, middlewares) {
|
|
735
|
-
this.add("options", path, handler, middlewares);
|
|
825
|
+
return this.add("options", path, handler, middlewares);
|
|
736
826
|
}
|
|
737
827
|
/**
|
|
738
828
|
* Adds a new HEAD route to the router.
|
|
@@ -743,7 +833,7 @@ var CoreRouter = class {
|
|
|
743
833
|
* @param middlewares
|
|
744
834
|
*/
|
|
745
835
|
static head(path, handler, middlewares) {
|
|
746
|
-
this.add("head", path, handler, middlewares);
|
|
836
|
+
return this.add("head", path, handler, middlewares);
|
|
747
837
|
}
|
|
748
838
|
/**
|
|
749
839
|
* Defines a group of routes with a common prefix.
|
|
@@ -785,8 +875,16 @@ var CoreRouter = class {
|
|
|
785
875
|
this.ensureState();
|
|
786
876
|
if (type === "method") return this.routesByMethod;
|
|
787
877
|
if (type === "path") return this.routesByPathMethod;
|
|
878
|
+
if (type === "name") return this.routesByName;
|
|
788
879
|
return this.routes.filter((e) => e.methods.length > 1 || e.methods[0] !== "options");
|
|
789
880
|
}
|
|
881
|
+
static route(name) {
|
|
882
|
+
this.ensureState();
|
|
883
|
+
return this.routesByName[name];
|
|
884
|
+
}
|
|
885
|
+
static url(name, params) {
|
|
886
|
+
return this.route(name)?.toPath(params);
|
|
887
|
+
}
|
|
790
888
|
static resolveHandler(route) {
|
|
791
889
|
let handlerFunction;
|
|
792
890
|
let instance = null;
|
|
@@ -853,8 +951,7 @@ var CoreRouter = class {
|
|
|
853
951
|
designTokens
|
|
854
952
|
});
|
|
855
953
|
if (pluginArgs) return handlerFunction(...pluginArgs);
|
|
856
|
-
if (!metadata) return handlerFunction(ctx, ctx.clearRequest);
|
|
857
|
-
if (!tokens.length) return handlerFunction(ctx, ctx.clearRequest);
|
|
954
|
+
if (!metadata || !tokens.length) return handlerFunction(ctx, ctx.clearRequest);
|
|
858
955
|
const args = [];
|
|
859
956
|
for (const token of tokens) {
|
|
860
957
|
const resolved = await Container.resolve(token, ctx, Boolean(this.config.container?.autoDiscover));
|
|
@@ -883,7 +980,11 @@ var CoreRouter = class {
|
|
|
883
980
|
clearRequest.query = payload.query;
|
|
884
981
|
clearRequest.params = payload.params;
|
|
885
982
|
ctx.clearRequest = clearRequest;
|
|
886
|
-
|
|
983
|
+
Container.bind(Request, ctx.clearRequest);
|
|
984
|
+
if (!(ctx.clearResponse instanceof Response)) {
|
|
985
|
+
ctx.clearResponse = new Response(ctx.response ?? ctx.reply ?? ctx.res);
|
|
986
|
+
Container.bind(Response, ctx.clearResponse);
|
|
987
|
+
}
|
|
887
988
|
if (!instance) return;
|
|
888
989
|
instance.ctx = ctx;
|
|
889
990
|
instance.body = payload.body;
|
package/dist/koa/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/koa/router.ts
|
|
7
7
|
/**
|
|
@@ -69,7 +69,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
69
69
|
* @param middlewares
|
|
70
70
|
*/
|
|
71
71
|
static add(methods, path, handler, middlewares) {
|
|
72
|
-
super.add(methods, path, handler, middlewares);
|
|
72
|
+
return super.add(methods, path, handler, middlewares);
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
75
|
* Define a resourceful API controller with standard CRUD routes
|
|
@@ -89,7 +89,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
89
89
|
* @param middlewares
|
|
90
90
|
*/
|
|
91
91
|
static get(path, handler, middlewares) {
|
|
92
|
-
super.get(path, handler, middlewares);
|
|
92
|
+
return super.get(path, handler, middlewares);
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
95
95
|
* Define a POST route
|
|
@@ -99,7 +99,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
99
99
|
* @param middlewares
|
|
100
100
|
*/
|
|
101
101
|
static post(path, handler, middlewares) {
|
|
102
|
-
super.post(path, handler, middlewares);
|
|
102
|
+
return super.post(path, handler, middlewares);
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
105
105
|
* Define a PUT route
|
|
@@ -109,7 +109,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
109
109
|
* @param middlewares
|
|
110
110
|
*/
|
|
111
111
|
static put(path, handler, middlewares) {
|
|
112
|
-
super.put(path, handler, middlewares);
|
|
112
|
+
return super.put(path, handler, middlewares);
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
115
|
* Define a DELETE route
|
|
@@ -119,7 +119,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
119
119
|
* @param middlewares
|
|
120
120
|
*/
|
|
121
121
|
static delete(path, handler, middlewares) {
|
|
122
|
-
super.delete(path, handler, middlewares);
|
|
122
|
+
return super.delete(path, handler, middlewares);
|
|
123
123
|
}
|
|
124
124
|
/**
|
|
125
125
|
* Define a PATCH route
|
|
@@ -129,7 +129,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
129
129
|
* @param middlewares
|
|
130
130
|
*/
|
|
131
131
|
static patch(path, handler, middlewares) {
|
|
132
|
-
super.patch(path, handler, middlewares);
|
|
132
|
+
return super.patch(path, handler, middlewares);
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
135
135
|
* Define an OPTIONS route
|
|
@@ -139,7 +139,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
139
139
|
* @param middlewares
|
|
140
140
|
*/
|
|
141
141
|
static options(path, handler, middlewares) {
|
|
142
|
-
super.options(path, handler, middlewares);
|
|
142
|
+
return super.options(path, handler, middlewares);
|
|
143
143
|
}
|
|
144
144
|
/**
|
|
145
145
|
* Adds a new HEAD route to the router.
|
|
@@ -150,7 +150,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
150
150
|
* @param middlewares
|
|
151
151
|
*/
|
|
152
152
|
static head(path, handler, middlewares) {
|
|
153
|
-
super.head(path, handler, middlewares);
|
|
153
|
+
return super.head(path, handler, middlewares);
|
|
154
154
|
}
|
|
155
155
|
/**
|
|
156
156
|
* Defines a group of routes with a common prefix.
|
|
@@ -174,6 +174,9 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
174
174
|
static allRoutes(type) {
|
|
175
175
|
return super.allRoutes(type);
|
|
176
176
|
}
|
|
177
|
+
static route(name) {
|
|
178
|
+
return super.route(name);
|
|
179
|
+
}
|
|
177
180
|
/**
|
|
178
181
|
* Apply the defined routes to a @koa/router instance
|
|
179
182
|
*
|
|
@@ -213,7 +216,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
213
216
|
];
|
|
214
217
|
if (method === "options" && route.methods.length > 1) continue;
|
|
215
218
|
if (!allowedMethods.includes(method)) throw new Error(`Invalid HTTP method: ${method} for route: ${route.path}`);
|
|
216
|
-
router[method](
|
|
219
|
+
for (const registrationPath of route.registrationPaths) router[method](registrationPath, ...route.middlewares || [], async (context, next) => {
|
|
217
220
|
const ctx = context;
|
|
218
221
|
const reqBody = await Router.readBodyCached(ctx);
|
|
219
222
|
const override = Router.resolveMethodOverride(ctx.method, ctx.headers, reqBody);
|
|
@@ -234,7 +237,7 @@ var Router = class Router extends require_router.CoreRouter {
|
|
|
234
237
|
"put",
|
|
235
238
|
"patch",
|
|
236
239
|
"delete"
|
|
237
|
-
].includes(method)) router.post(
|
|
240
|
+
].includes(method)) for (const registrationPath of route.registrationPaths) router.post(registrationPath, ...route.middlewares || [], async (context, next) => {
|
|
238
241
|
const ctx = context;
|
|
239
242
|
const reqBody = await Router.readBodyCached(ctx);
|
|
240
243
|
if (Router.resolveMethodOverride(ctx.method, ctx.headers, reqBody) !== method) return next();
|
package/dist/koa/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 Koa from "koa";
|
|
3
3
|
import Router$1 from "@koa/router";
|
|
4
4
|
|
|
@@ -40,7 +40,7 @@ declare class Router extends CoreRouter {
|
|
|
40
40
|
* @param handler
|
|
41
41
|
* @param middlewares
|
|
42
42
|
*/
|
|
43
|
-
static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
43
|
+
static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
44
44
|
/**
|
|
45
45
|
* Define a resourceful API controller with standard CRUD routes
|
|
46
46
|
*
|
|
@@ -60,7 +60,7 @@ declare class Router extends CoreRouter {
|
|
|
60
60
|
* @param handler
|
|
61
61
|
* @param middlewares
|
|
62
62
|
*/
|
|
63
|
-
static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
63
|
+
static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
64
64
|
/**
|
|
65
65
|
* Define a POST route
|
|
66
66
|
*
|
|
@@ -68,7 +68,7 @@ declare class Router extends CoreRouter {
|
|
|
68
68
|
* @param handler
|
|
69
69
|
* @param middlewares
|
|
70
70
|
*/
|
|
71
|
-
static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
71
|
+
static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
72
72
|
/**
|
|
73
73
|
* Define a PUT route
|
|
74
74
|
*
|
|
@@ -76,7 +76,7 @@ declare class Router extends CoreRouter {
|
|
|
76
76
|
* @param handler
|
|
77
77
|
* @param middlewares
|
|
78
78
|
*/
|
|
79
|
-
static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
79
|
+
static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
80
80
|
/**
|
|
81
81
|
* Define a DELETE route
|
|
82
82
|
*
|
|
@@ -84,7 +84,7 @@ declare class Router extends CoreRouter {
|
|
|
84
84
|
* @param handler
|
|
85
85
|
* @param middlewares
|
|
86
86
|
*/
|
|
87
|
-
static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
87
|
+
static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
88
88
|
/**
|
|
89
89
|
* Define a PATCH route
|
|
90
90
|
*
|
|
@@ -92,7 +92,7 @@ declare class Router extends CoreRouter {
|
|
|
92
92
|
* @param handler
|
|
93
93
|
* @param middlewares
|
|
94
94
|
*/
|
|
95
|
-
static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
95
|
+
static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
96
96
|
/**
|
|
97
97
|
* Define an OPTIONS route
|
|
98
98
|
*
|
|
@@ -100,7 +100,7 @@ declare class Router extends CoreRouter {
|
|
|
100
100
|
* @param handler
|
|
101
101
|
* @param middlewares
|
|
102
102
|
*/
|
|
103
|
-
static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
103
|
+
static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
104
104
|
/**
|
|
105
105
|
* Adds a new HEAD route to the router.
|
|
106
106
|
*
|
|
@@ -109,7 +109,7 @@ declare class Router extends CoreRouter {
|
|
|
109
109
|
* @param handler
|
|
110
110
|
* @param middlewares
|
|
111
111
|
*/
|
|
112
|
-
static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
112
|
+
static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
113
113
|
/**
|
|
114
114
|
* Defines a group of routes with a common prefix.
|
|
115
115
|
*
|
|
@@ -137,6 +137,8 @@ declare class Router extends CoreRouter {
|
|
|
137
137
|
* @param type - 'method' to get routes organized by method
|
|
138
138
|
*/
|
|
139
139
|
static allRoutes(type: 'method'): { [method in Uppercase<HttpMethod>]?: Array<Route<HttpContext, Middleware, Handler>> };
|
|
140
|
+
static allRoutes(type: 'name'): Record<string, Route<HttpContext, Middleware, Handler>>;
|
|
141
|
+
static route(name: string): Route<HttpContext, Middleware, Handler> | undefined;
|
|
140
142
|
/**
|
|
141
143
|
* Apply the defined routes to a @koa/router instance
|
|
142
144
|
*
|
package/dist/koa/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 Koa from "koa";
|
|
3
3
|
import Router$1 from "@koa/router";
|
|
4
4
|
|
|
@@ -40,7 +40,7 @@ declare class Router extends CoreRouter {
|
|
|
40
40
|
* @param handler
|
|
41
41
|
* @param middlewares
|
|
42
42
|
*/
|
|
43
|
-
static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
43
|
+
static add(methods: HttpMethod | HttpMethod[], path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
44
44
|
/**
|
|
45
45
|
* Define a resourceful API controller with standard CRUD routes
|
|
46
46
|
*
|
|
@@ -60,7 +60,7 @@ declare class Router extends CoreRouter {
|
|
|
60
60
|
* @param handler
|
|
61
61
|
* @param middlewares
|
|
62
62
|
*/
|
|
63
|
-
static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
63
|
+
static get(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
64
64
|
/**
|
|
65
65
|
* Define a POST route
|
|
66
66
|
*
|
|
@@ -68,7 +68,7 @@ declare class Router extends CoreRouter {
|
|
|
68
68
|
* @param handler
|
|
69
69
|
* @param middlewares
|
|
70
70
|
*/
|
|
71
|
-
static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
71
|
+
static post(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
72
72
|
/**
|
|
73
73
|
* Define a PUT route
|
|
74
74
|
*
|
|
@@ -76,7 +76,7 @@ declare class Router extends CoreRouter {
|
|
|
76
76
|
* @param handler
|
|
77
77
|
* @param middlewares
|
|
78
78
|
*/
|
|
79
|
-
static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
79
|
+
static put(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
80
80
|
/**
|
|
81
81
|
* Define a DELETE route
|
|
82
82
|
*
|
|
@@ -84,7 +84,7 @@ declare class Router extends CoreRouter {
|
|
|
84
84
|
* @param handler
|
|
85
85
|
* @param middlewares
|
|
86
86
|
*/
|
|
87
|
-
static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
87
|
+
static delete(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
88
88
|
/**
|
|
89
89
|
* Define a PATCH route
|
|
90
90
|
*
|
|
@@ -92,7 +92,7 @@ declare class Router extends CoreRouter {
|
|
|
92
92
|
* @param handler
|
|
93
93
|
* @param middlewares
|
|
94
94
|
*/
|
|
95
|
-
static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
95
|
+
static patch(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
96
96
|
/**
|
|
97
97
|
* Define an OPTIONS route
|
|
98
98
|
*
|
|
@@ -100,7 +100,7 @@ declare class Router extends CoreRouter {
|
|
|
100
100
|
* @param handler
|
|
101
101
|
* @param middlewares
|
|
102
102
|
*/
|
|
103
|
-
static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
103
|
+
static options(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
104
104
|
/**
|
|
105
105
|
* Adds a new HEAD route to the router.
|
|
106
106
|
*
|
|
@@ -109,7 +109,7 @@ declare class Router extends CoreRouter {
|
|
|
109
109
|
* @param handler
|
|
110
110
|
* @param middlewares
|
|
111
111
|
*/
|
|
112
|
-
static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware):
|
|
112
|
+
static head(path: string, handler: Handler, middlewares?: Middleware[] | Middleware): Route<HttpContext, Middleware, Handler>;
|
|
113
113
|
/**
|
|
114
114
|
* Defines a group of routes with a common prefix.
|
|
115
115
|
*
|
|
@@ -137,6 +137,8 @@ declare class Router extends CoreRouter {
|
|
|
137
137
|
* @param type - 'method' to get routes organized by method
|
|
138
138
|
*/
|
|
139
139
|
static allRoutes(type: 'method'): { [method in Uppercase<HttpMethod>]?: Array<Route<HttpContext, Middleware, Handler>> };
|
|
140
|
+
static allRoutes(type: 'name'): Record<string, Route<HttpContext, Middleware, Handler>>;
|
|
141
|
+
static route(name: string): Route<HttpContext, Middleware, Handler> | undefined;
|
|
140
142
|
/**
|
|
141
143
|
* Apply the defined routes to a @koa/router instance
|
|
142
144
|
*
|
package/dist/koa/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "../bindings-
|
|
2
|
-
import { t as CoreRouter } from "../router-
|
|
3
|
-
import { n as resolveResponseMeta, t as isFetchResponse } from "../responses-
|
|
1
|
+
import "../bindings-XLDXFpHZ.mjs";
|
|
2
|
+
import { t as CoreRouter } from "../router-DSq9dtuQ.mjs";
|
|
3
|
+
import { n as resolveResponseMeta, t as isFetchResponse } from "../responses-BvETUeDL.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/koa/router.ts
|
|
6
6
|
/**
|
|
@@ -68,7 +68,7 @@ var Router = class Router extends CoreRouter {
|
|
|
68
68
|
* @param middlewares
|
|
69
69
|
*/
|
|
70
70
|
static add(methods, path, handler, middlewares) {
|
|
71
|
-
super.add(methods, path, handler, middlewares);
|
|
71
|
+
return super.add(methods, path, handler, middlewares);
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* Define a resourceful API controller with standard CRUD routes
|
|
@@ -88,7 +88,7 @@ var Router = class Router extends CoreRouter {
|
|
|
88
88
|
* @param middlewares
|
|
89
89
|
*/
|
|
90
90
|
static get(path, handler, middlewares) {
|
|
91
|
-
super.get(path, handler, middlewares);
|
|
91
|
+
return super.get(path, handler, middlewares);
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
94
|
* Define a POST route
|
|
@@ -98,7 +98,7 @@ var Router = class Router extends CoreRouter {
|
|
|
98
98
|
* @param middlewares
|
|
99
99
|
*/
|
|
100
100
|
static post(path, handler, middlewares) {
|
|
101
|
-
super.post(path, handler, middlewares);
|
|
101
|
+
return super.post(path, handler, middlewares);
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
104
|
* Define a PUT route
|
|
@@ -108,7 +108,7 @@ var Router = class Router extends CoreRouter {
|
|
|
108
108
|
* @param middlewares
|
|
109
109
|
*/
|
|
110
110
|
static put(path, handler, middlewares) {
|
|
111
|
-
super.put(path, handler, middlewares);
|
|
111
|
+
return super.put(path, handler, middlewares);
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
114
|
* Define a DELETE route
|
|
@@ -118,7 +118,7 @@ var Router = class Router extends CoreRouter {
|
|
|
118
118
|
* @param middlewares
|
|
119
119
|
*/
|
|
120
120
|
static delete(path, handler, middlewares) {
|
|
121
|
-
super.delete(path, handler, middlewares);
|
|
121
|
+
return super.delete(path, handler, middlewares);
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
124
|
* Define a PATCH route
|
|
@@ -128,7 +128,7 @@ var Router = class Router extends CoreRouter {
|
|
|
128
128
|
* @param middlewares
|
|
129
129
|
*/
|
|
130
130
|
static patch(path, handler, middlewares) {
|
|
131
|
-
super.patch(path, handler, middlewares);
|
|
131
|
+
return super.patch(path, handler, middlewares);
|
|
132
132
|
}
|
|
133
133
|
/**
|
|
134
134
|
* Define an OPTIONS route
|
|
@@ -138,7 +138,7 @@ var Router = class Router extends CoreRouter {
|
|
|
138
138
|
* @param middlewares
|
|
139
139
|
*/
|
|
140
140
|
static options(path, handler, middlewares) {
|
|
141
|
-
super.options(path, handler, middlewares);
|
|
141
|
+
return super.options(path, handler, middlewares);
|
|
142
142
|
}
|
|
143
143
|
/**
|
|
144
144
|
* Adds a new HEAD route to the router.
|
|
@@ -149,7 +149,7 @@ var Router = class Router extends CoreRouter {
|
|
|
149
149
|
* @param middlewares
|
|
150
150
|
*/
|
|
151
151
|
static head(path, handler, middlewares) {
|
|
152
|
-
super.head(path, handler, middlewares);
|
|
152
|
+
return super.head(path, handler, middlewares);
|
|
153
153
|
}
|
|
154
154
|
/**
|
|
155
155
|
* Defines a group of routes with a common prefix.
|
|
@@ -173,6 +173,9 @@ var Router = class Router extends CoreRouter {
|
|
|
173
173
|
static allRoutes(type) {
|
|
174
174
|
return super.allRoutes(type);
|
|
175
175
|
}
|
|
176
|
+
static route(name) {
|
|
177
|
+
return super.route(name);
|
|
178
|
+
}
|
|
176
179
|
/**
|
|
177
180
|
* Apply the defined routes to a @koa/router instance
|
|
178
181
|
*
|
|
@@ -212,7 +215,7 @@ var Router = class Router extends CoreRouter {
|
|
|
212
215
|
];
|
|
213
216
|
if (method === "options" && route.methods.length > 1) continue;
|
|
214
217
|
if (!allowedMethods.includes(method)) throw new Error(`Invalid HTTP method: ${method} for route: ${route.path}`);
|
|
215
|
-
router[method](
|
|
218
|
+
for (const registrationPath of route.registrationPaths) router[method](registrationPath, ...route.middlewares || [], async (context, next) => {
|
|
216
219
|
const ctx = context;
|
|
217
220
|
const reqBody = await Router.readBodyCached(ctx);
|
|
218
221
|
const override = Router.resolveMethodOverride(ctx.method, ctx.headers, reqBody);
|
|
@@ -233,7 +236,7 @@ var Router = class Router extends CoreRouter {
|
|
|
233
236
|
"put",
|
|
234
237
|
"patch",
|
|
235
238
|
"delete"
|
|
236
|
-
].includes(method)) router.post(
|
|
239
|
+
].includes(method)) for (const registrationPath of route.registrationPaths) router.post(registrationPath, ...route.middlewares || [], async (context, next) => {
|
|
237
240
|
const ctx = context;
|
|
238
241
|
const reqBody = await Router.readBodyCached(ctx);
|
|
239
242
|
if (Router.resolveMethodOverride(ctx.method, ctx.headers, reqBody) !== method) return next();
|