Lightweight and fast router for JavaScript based on Radix Tree.
Install package:
# npm
npm install radix3
# yarn
yarn add radix3
Import:
// 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' })
*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 :placeholder
s 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 ❤️