Lightweight and fast router for JavaScript based on Radix Tree.
Install package:
# npm npm i radix3 # yarn yarn add radix3 # pnpm pnpm i radix3Import:
// ESM import { createRouter } from 'radix3' // CJS const { createRouter } = require('radix3')Create a router instance and insert routes:
const router = createRouter() router.insert('/path', { payload: 'this path' }) router.insert('/path/:name', { payload: 'named route' }) router.insert('/path/foo/**', { payload: 'wildcard route' }) router.insert('/path/foo/**:name', { payload: 'named wildcard route' })*Match route to access matched data:
// { payload: 'this path' } router.lookup('/path') // { payload: 'named route', params: { name: 'fooval' } } router.lookup('/path/fooval') // { payload: 'wildcard route' } router.lookup('/path/foo/bar/baz') // null (no route matched for/) router.lookup('/')path can be static or using :placeholders and ** for wildcard paths.
The data object will be returned on matching params. It should be an object like { handler } and not containing reserved keyword params.
Returns matched data for path with optional params key if mached route using placeholders.
Find all data nodes matching path prefix.
Remove route matching path.
See benchmark.
Based on original work of charlieduong94/radix-router by Charlie Duong (MIT)
MIT - Made with ❤️