router-segments
TypeScript icon, indicating that this package has built-in type declarations

10.0.0 • Public • Published

router-segments

Router with segments

Why another router ?

This router take full advantages of segments, building a tree of regexp to avoid having 500 regexp calls for one route.

How to use

router-segments uses path-to-regexp for matching the route paths, also used by expressjs, koa-router and many other routers.

import { createRouterBuilder } from "router-segments";

const builder = createRouterBuilder();

builder.add("/", ref);
builder.addSegment("/post", (segmentBuilder) => {
  segmentBuilder.add("/:id(\\d+)-:slug([A-Za-z\\-]+)", ref, "/post/view");
  segmentBuilder.defaultRoute(ref, "/post");
});

export default builder.createRouter();

Url Generator

path-to-regexp documentation

router.toPath("/post/view", { id: "001", slug: "a-slug" });
// /post/001-a-slug

Localized routes

import { createRouterBuilder } from "router-segments";

const builder = createRouterBuilder(["en", "fr"]);

builder.add("/", ref);
builder.addLocalizedSegment(
  {
    en: "/my-blog",
    fr: "/mon-blog",
  },
  (segmentBuilder) => {
    segmentBuilder.addLocalized(
      {
        en: "/post/:id(\\d+)",
        fr: "/billet/:id(\\d+)",
      },
      ref,
      "/my-blog/post"
    );
    segmentBuilder.defaultRoute(ref, "/my-blog");
  }
);

export const router = builder.createRouter();

API

see Definition file

Readme

Keywords

Package Sidebar

Install

npm i router-segments

Weekly Downloads

119

Version

10.0.0

License

MIT

Unpacked Size

139 kB

Total Files

76

Last publish

Collaborators

  • churpeau