@stacksjs/router 0.53.1 → 0.56.3
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/index.d.ts +6 -2
- package/dist/index.mjs +17 -14
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { HttpMethod, RouteCallback, RouteGroupOptions } from '@stacksjs/types';
|
|
2
|
+
|
|
3
|
+
declare class Router {
|
|
3
4
|
private routes;
|
|
4
5
|
addRoute(method: HttpMethod, url: string, callback: RouteCallback): void;
|
|
5
6
|
group(options: RouteGroupOptions, callback: () => void): void;
|
|
@@ -15,3 +16,6 @@ export declare class Router {
|
|
|
15
16
|
private extractParams;
|
|
16
17
|
private getMiddleware;
|
|
17
18
|
}
|
|
19
|
+
declare const route: Router;
|
|
20
|
+
|
|
21
|
+
export { Router, route };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
class Router {
|
|
2
2
|
constructor() {
|
|
3
3
|
this.routes = [];
|
|
4
4
|
}
|
|
@@ -35,14 +35,14 @@ export class Router {
|
|
|
35
35
|
this.routes.push({ method: "after", pattern: /^$/, callback, paramNames: [] });
|
|
36
36
|
}
|
|
37
37
|
async handleRequest(method, url) {
|
|
38
|
-
const
|
|
39
|
-
if (!
|
|
38
|
+
const route2 = this.matchRoute(method, url);
|
|
39
|
+
if (!route2)
|
|
40
40
|
throw new Error("Route not found");
|
|
41
|
-
const params = this.extractParams(
|
|
42
|
-
const middleware = this.getMiddleware(
|
|
41
|
+
const params = this.extractParams(route2, url);
|
|
42
|
+
const middleware = this.getMiddleware(route2);
|
|
43
43
|
if (middleware.before)
|
|
44
44
|
await middleware.before(params);
|
|
45
|
-
const result = await
|
|
45
|
+
const result = await route2.callback(params);
|
|
46
46
|
if (middleware.after)
|
|
47
47
|
await middleware.after(params);
|
|
48
48
|
return result;
|
|
@@ -63,31 +63,34 @@ export class Router {
|
|
|
63
63
|
this.addRoute("delete", url, callback);
|
|
64
64
|
}
|
|
65
65
|
matchRoute(method, url) {
|
|
66
|
-
const
|
|
67
|
-
return
|
|
66
|
+
const route2 = this.routes.find((r) => r.method === method && r.pattern.test(url));
|
|
67
|
+
return route2 || null;
|
|
68
68
|
}
|
|
69
|
-
extractParams(
|
|
70
|
-
const matches = url.match(
|
|
69
|
+
extractParams(route2, url) {
|
|
70
|
+
const matches = url.match(route2.pattern);
|
|
71
71
|
const params = {};
|
|
72
72
|
if (matches) {
|
|
73
|
-
|
|
73
|
+
route2.paramNames.forEach((name, i) => {
|
|
74
74
|
params[name] = matches[i + 1];
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
return params;
|
|
78
78
|
}
|
|
79
|
-
getMiddleware(
|
|
79
|
+
getMiddleware(route2) {
|
|
80
80
|
const before = this.routes.filter((r) => r.method === "before");
|
|
81
81
|
const after = this.routes.filter((r) => r.method === "after");
|
|
82
82
|
const middleware = {};
|
|
83
83
|
before.forEach((b) => {
|
|
84
|
-
if (b.pattern.test(
|
|
84
|
+
if (b.pattern.test(route2.pattern.source))
|
|
85
85
|
middleware.before = b.callback;
|
|
86
86
|
});
|
|
87
87
|
after.forEach((a) => {
|
|
88
|
-
if (a.pattern.test(
|
|
88
|
+
if (a.pattern.test(route2.pattern.source))
|
|
89
89
|
middleware.after = a.callback;
|
|
90
90
|
});
|
|
91
91
|
return middleware;
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
+
const route = new Router();
|
|
95
|
+
|
|
96
|
+
export { Router, route };
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/router",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"packageManager": "pnpm@8.5
|
|
4
|
+
"version": "0.56.3",
|
|
5
|
+
"packageManager": "pnpm@8.6.5",
|
|
6
6
|
"description": "The Stacks framework router.",
|
|
7
7
|
"author": "Chris Breuer",
|
|
8
8
|
"license": "MIT",
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"README.md"
|
|
40
40
|
],
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"vue-router": "^4.2.
|
|
42
|
+
"vue-router": "^4.2.2"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@stacksjs/development": "0.
|
|
45
|
+
"@stacksjs/development": "0.56.3"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build": "unbuild",
|