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

0.1.9 • Public • Published

NPM version Travis Coveralls github branch

TRIE ROUTER

A trie-based http router

similar work:
pillarjs/routington

Feature

  • Tried-base, logarithmic time complexity
  • Named URL parameters
  • Strong typed api(TypeScript 1.6+ Required)

Usage

npm install trie-router

this example briefly show the behavior of trie-router

const TrieRouter = require('trie-router').TrieRouter

const router = new TrieRouter()

router
    .post('user/:id(\\d+)/login/:mode',1,2)
    .all(3)
    .get('user',4)
    .post('user',5)
    .post('user/:id',7)
    .post('user',6)
//numbers here represent different middlewares

const { handlers, params } = router.fit('POST','user/123/login/email')
//handlers = [3,5,6,1,2]
//params = {id:"123",mode:"email"}

in typescript:

import { TrieRouter } from 'trie-router' 
interface IKoaMiddleware{(ctx,next):any}

const router = new TrieRouter<IKoaMiddleware>()

router
    .post('user/:id(\\d+)/login/:mode',(ctx,next)=>{
        ctx.body = "hello"
        next()
    })

TODO

benchmarks
trie visualization

Readme

Keywords

Package Sidebar

Install

npm i trie-router

Weekly Downloads

2

Version

0.1.9

License

MIT

Last publish

Collaborators

  • reebokliu