0.5.1 • Published 11 months ago

rou3 v0.5.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

🌳 rou3

npm version npm downloads bundle size codecov

Lightweight and fast router for JavaScript.

!NOTE Radix3 migrated to Rou3! See #108 for notes and radix3 branch for legacy codebase.

Usage

Install:

# ✨ Auto-detect
npx nypm install rou3

# npm
npm install rou3

# yarn
yarn add rou3

# pnpm
pnpm install rou3

# bun
bun install rou3

Import:

ESM (Node.js, Bun)

import {
  createRouter,
  addRoute,
  findRoute,
  removeRoute,
  findAllRoutes,
} from "rou3";

CommonJS (Legacy Node.js)

const {
  createRouter,
  addRoute,
  findRoute,
  removeRoute,
  findAllRoutes,
} = require("rou3");

CDN (Deno, Bun and Browsers)

import {
  createRouter,
  addRoute,
  findRoute,
  removeRoute,
  findAllRoutes,
} from "https://esm.sh/rou3";

Create a router instance and insert routes:

import { createRouter, addRoute } from "rou3";

const router = createRouter(/* options */);

addRoute(router, "GET", "/path", { payload: "this path" });
addRoute(router, "POST", "/path/:name", { payload: "named route" });
addRoute(router, "GET", "/path/foo/**", { payload: "wildcard route" });
addRoute(router, "GET", "/path/foo/**:name", {
  payload: "named wildcard route",
});

Match route to access matched data:

// Returns { payload: 'this path' }
findRoute(router, "GET", "/path");

// Returns { payload: 'named route', params: { name: 'fooval' } }
findRoute(router, "POST", "/path/fooval");

// Returns { payload: 'wildcard route' }
findRoute(router, "GET", "/path/foo/bar/baz");

// Returns undefined (no route matched for/)
findRoute(router, "GET", "/");

License

Published under the MIT license. Made by @pi0 and community 💛


🤖 auto updated with automd

0.5.1

11 months ago

0.5.0

11 months ago

0.4.0

12 months ago

0.3.0

12 months ago

0.2.0

12 months ago

0.1.0

12 months ago

0.0.1

12 months ago

0.0.0

12 months ago