Route

import { Route } from "jsr:@ende/http/unstable-route";

interface · experimental

interface Route

Route configuration for route.

Properties

pattern

pattern: URLPattern

Request URL pattern.

method

method?: string | string[]

Request method. This can be a string or an array of strings. Method matching is case-insensitive.

If not specified, all HTTP methods are matched.

handler

handler: Handler

Request handler.

Source

route

import { route } from "jsr:@ende/http/unstable-route";

function · experimental

function route(routes: Route[], defaultHandler: RequestHandler): RequestHandler

Routes requests to handlers using a linear scan over all routes.

routes: Route[]

Route configurations

defaultHandler: RequestHandler

Default request handler

Returns

Request handler

Example: Usage

import { routeLinear, type Route } from "@ende/http/unstable-route";

const routes: Route[] = [
  {
    pattern: new URLPattern({ pathname: "/about" }),
    handler: () => new Response("About page"),
  },
  {
    pattern: new URLPattern({ pathname: "/users/:id" }),
    method: "GET",
    handler: (_req, params) => new Response(params.pathname.groups.id),
  },
];

function defaultHandler(_req: Request) {
  return new Response("Not found", { status: 404 });
}

Ende.serve(routeLinear(routes, defaultHandler));

Source