@stricjs/router v5.0.6
A router middleware for StricJS.
import { Router } from "@stricjs/router";
new Router()
// Add a handler to route "/home"
.static("GET", "/home", () =>
new Response("Hello!"))
// Return a 404 for all other routes
.dynamic("", "/(.*)", () =>
new Response("Not Found"))
// Serve directly
.serve();
Benchmark
You can see the latest benchmark result here.
I recommend benchmarking this on your machine.
Algorithm
The routing algorithm.
Storing handlers
Router handlers are saved into a static map for static routes and an array for dynamic routes.
class Router {
private statics: Record<string, HandlerFunction>;
private regexs: [RegExp, HandlerFunction][];
}
Adding handlers
The static(method, path, handler)
set the key method + path
in Router.statics
object to the handler.
The dynamic(method, path, handler)
push an array with the RegExp path from method + path
as the first element and the handler as the second element to Router.regexs
.
Finding routes
Slice the pathname from the full URL using /(?:\w+:)?\/\/[^\/]+([^?]+)/
.
Search for method-specific static handler and all-method static handler of the path.
If found returns an array with the handler as the only element.
If there are no static handler of the path loop through the RegExp list and test the path with each RegExp.
If match then returns an array with the handler as the first element and the RegExpExecArray
as the second element.
If nothing matches returns an empty array.
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
9 months ago
9 months ago
10 months ago
11 months ago
11 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
11 months ago
11 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
10 months ago
10 months ago
7 months ago
7 months ago
8 months ago
7 months ago
7 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
1 year ago
12 months ago
1 year ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
1 year ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
11 months ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago