Router
Examples:
import { Router, RouteTree } from "router";
const router = new Router();
router.set("GET", "/test", ...);
router.set("GET", "/test/:msg", ...);
router.set("GET", "/test/:param1/:param2", ...);
router.set("GET", "/test/:param1/1/:param2", ...);
router.set("GET", "/splat/*/test", ...);
router.set("GET", "/splat1/*", ...);
router.set("GET", "/wildcardparam/*/:param", ...);
router.set("GET", "/wildcardparam/*/test/:param", ...);
router.anyOf(["GET", "POST"], "/or/ping|pong", ...);
router.set("GET", "/or/ping|pong/:param", ...);
router.find("/test", "GET");
router.find("/test/Hello world", "GET");
router.find("/test/Hello/world!", "GET");
router.find("/test/Hello/1/world!", "GET");
router.find("/splat/1/2/3", "GET");
router.find("/splat/1/2/test", "GET");
router.find("/splat1/1/2/3", "GET");
router.find("/wildcardparam/1/2/YO!", "GET");
router.find("/wildcardparam/1/2/test/YO!", "GET");
router.find("/or/pong", "GET");
router.find("/or/ping", "GET");
router.find("/or/ping", "POST");
router.find("/or/pong/Hello", "GET");
function api(router: Router, base: RouteTree) {
router.setAt(base, "GET", "/test", function() {
return true;
});
router.setAt(base, "GET", "/msg/:msg", function(param) {
return param.msg;
});
}
router.use("/api", api);
router.find("/api/test", "GET");
router.find("/api/msg/hello", "GET");