8000 GitHub - aCSAficia064/radix3: 🌳 Lightweight and fast router for JavaScript based on Radix Tree
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
forked from h3js/rou3

🌳 Lightweight and fast router for JavaScript based on Radix Tree

License

Notifications You must be signed in to change notification settings

aCSAficia064/radix3

 
 

Repository files navigation

🌳 radix3

npm version npm downloads Github Actions Codecov bundle

Lightweight and fast router for JavaScript based on Radix Tree.

Usage

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('/')

Methods

router.insert(path, data)

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.

router.lookup(path)

Returns matched data for path with optional params key if mached route using placeholders.

router.lookupAll(prefix)

Find all data nodes matching path prefix.

router.remove(path)

Remove route matching path.

Performance

See benchmark.

License

Based on original work of charlieduong94/radix-router by Charlie Duong (MIT)

MIT - Made with ❤️

About

🌳 Lightweight and fast router for JavaScript based on Radix Tree

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 83.5%
  • JavaScript 16.5%
0