Skip to content

url-pattern

Minified1.77 KBMinzipped761 B

Type-safe url pattern matching.

Example

ts
const matchPattern = urlPattern(
    "/api/:version{v1|v2}/users/:id?sort&order{asc|desc}",
);

const result = matchPattern("/api/v1/users/123?sort=name&order=asc");
ts
type Result =
    | undefined
    | {
          params: {
              version: "v1" | "v2";
              id: string;
          };
          search: {
              sort?: string;
              order?: "asc" | "desc";
          };
          raw: {
              hash: string;
              host: string;
              hostname: string;
              href: string;
              origin: string;
              password: string;
              pathname: string;
              port: string;
              protocol: string;
              search: string;
              username: string;
          };
      };
ts
const result = {
    params: { id: "123", version: "v1" },
    search: { order: "asc", sort: "name" },
    raw: {...},
};

Installation

sh
npm install @monstermann/url-pattern
sh
pnpm add @monstermann/url-pattern
sh
yarn add @monstermann/url-pattern
sh
bun add @monstermann/url-pattern