2.31.0 • Published 1 day ago

@ditojs/router v2.31.0

Weekly downloads
2,403
License
MIT
Repository
github
Last release
1 day ago

Dito.js Router

Dito.js is a declarative and modern web framework with a focus on API driven development, based on Koa.js, Objection.js and Vue.js

Released in 2018 under the MIT license, with support by https://lineto.com/

Dito.js Router is a high performance, tree-based, framework agnostic HTTP router, based on trek-router, which in turn is inspired by Echo's Router.

How does it work?

The router relies on a tree structure which makes heavy use of common prefixes, essentially a prefix tree.

Usage

import Koa from 'koa'
import Router from '@ditojs/router'

const app = new Koa()
const router = new Router()

// static route
router.get('/folders/files/bolt.gif', ctx => {
  ctx.body = `this ain't no GIF!`
})

// param route
router.get('/users/:id', ctx => {
  ctx.body = `requesting user ${ctx.params.id}`
})

// match-any route
router.get('/books/*', ctx => {
  ctx.body = `sub-route: ${ctx.params['*']}`
})

// Handler found
let { handler, params } = router.find('get', '/users/233')
console.log(handler) // ctx => { ... }

// Entry not Found
let { handler, params } = router.find('get', '/photos/233')
console.log(handler) // null

// Install router middleware
app.use(async (ctx, next) => {
  const { method, path } = ctx
  const result = router.find(method, path)
  const { handler, params } = result
  if (handler) {
    ctx.params = params || {}
    return handler(ctx, next)
  } else {
    try {
      await next()
    } finally {
      if (ctx.body === undefined && ctx.status === 404) {
        ctx.status = result.status || 404
        if (ctx.status !== 404 && result.allowed) {
          ctx.set('Allow', result.allowed.join(', '))
        }
      }
    }
  }
})

app.listen(4040, () => console.log('Koa app listening on 4040'))
2.31.0

1 day ago

2.30.0

3 days ago

2.29.0

3 days ago

2.28.1

5 days ago

2.28.0

6 days ago

2.27.0

13 days ago

2.26.1

14 days ago

2.26.0

19 days ago

2.25.0

2 months ago

2.24.0

3 months ago

2.23.0

3 months ago

2.22.0

3 months ago

2.21.0

4 months ago

2.19.0

4 months ago

2.20.0

4 months ago

2.18.0

5 months ago

2.11.0

9 months ago

2.11.1

9 months ago

2.10.5

10 months ago

2.17.0

5 months ago

2.16.0

5 months ago

2.15.0

5 months ago

2.14.1

6 months ago

2.13.0

7 months ago

2.12.0

8 months ago

2.10.0

11 months ago

2.9.0

12 months ago

2.8.0

12 months ago

2.7.1

12 months ago

2.7.0

12 months ago

2.4.1

12 months ago

2.6.0

12 months ago

2.5.0

12 months ago

2.4.0

1 year ago

2.3.0

1 year ago

2.2.0

1 year ago

2.1.1

1 year ago

2.1.0

1 year ago

2.0.5

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.29.0

1 year ago

1.24.0

1 year ago

1.25.0

1 year ago

1.25.1

1 year ago

1.26.0

1 year ago

1.27.0

1 year ago

1.30.0

1 year ago

1.28.0

1 year ago

1.22.0

1 year ago

1.23.0

1 year ago

1.18.0

1 year ago

1.21.0

1 year ago

1.19.0

1 year ago

1.14.0

1 year ago

1.15.0

1 year ago

1.16.0

1 year ago

1.17.0

1 year ago

1.20.0

1 year ago

1.10.1

1 year ago

1.12.0

1 year ago

1.11.0

1 year ago

1.13.1

1 year ago

1.13.0

1 year ago

1.10.0

2 years ago

1.9.0

2 years ago

1.6.0

2 years ago

1.5.5

2 years ago

1.8.0

2 years ago

1.5.0

2 years ago

1.4.3

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.0

2 years ago

1.0.0-rc.0

2 years ago

1.2.0

2 years ago

1.1.0

2 years ago

1.0.0

2 years ago

0.274.0

2 years ago

0.275.0

2 years ago

0.273.0

2 years ago

0.272.0

2 years ago

0.271.0

3 years ago

0.270.0

3 years ago

0.269.0

3 years ago

0.268.0

3 years ago

0.266.0

3 years ago

0.267.0

3 years ago

0.264.0

3 years ago

0.265.0

3 years ago

0.263.0

3 years ago

0.262.0

3 years ago

0.261.0

3 years ago

0.260.0

3 years ago

0.259.0

3 years ago

0.258.0

3 years ago

0.257.0

3 years ago

0.255.0

3 years ago

0.256.0

3 years ago

0.253.0

3 years ago

0.254.0

3 years ago

0.251.0

3 years ago

0.252.0

3 years ago

0.247.0

3 years ago

0.248.0

3 years ago

0.245.0

3 years ago

0.246.0

3 years ago

0.250.0

3 years ago

0.249.0

3 years ago

0.243.0

3 years ago

0.244.0

3 years ago

0.242.0

3 years ago

0.241.0

3 years ago

0.236.0

3 years ago

0.240.0

3 years ago

0.237.0

3 years ago

0.235.0

3 years ago

0.238.0

3 years ago

0.239.0

3 years ago

0.225.0

3 years ago

0.234.0

3 years ago

0.228.0

3 years ago

0.232.0

3 years ago

0.229.0

3 years ago

0.233.0

3 years ago

0.226.0

3 years ago

0.230.0

3 years ago

0.227.0

3 years ago

0.231.0

3 years ago

0.224.0

3 years ago

0.223.0

3 years ago

0.222.0

3 years ago

0.220.0

3 years ago

0.221.0

3 years ago

0.219.0

3 years ago

0.217.0

3 years ago

0.218.0

3 years ago

0.216.0

3 years ago

0.215.0

3 years ago

0.213.0

3 years ago

0.214.0

3 years ago

0.211.0

3 years ago

0.212.0

3 years ago

0.210.0

3 years ago

0.209.0

3 years ago

0.208.0

3 years ago

0.206.0

3 years ago

0.207.0

3 years ago

0.205.0

3 years ago

0.204.0

3 years ago

0.203.0

3 years ago

0.202.0

3 years ago

0.201.0

3 years ago

0.200.0

3 years ago

0.199.0

3 years ago

0.198.0

3 years ago

0.197.0

3 years ago

0.196.0

3 years ago

0.194.0

3 years ago

0.195.0

3 years ago

0.193.0

3 years ago

0.192.0

3 years ago

0.190.0

3 years ago

0.191.0

3 years ago

0.189.0

3 years ago

0.188.0

3 years ago

0.187.0

3 years ago

0.186.0

3 years ago

0.185.0

3 years ago

0.182.0

3 years ago

0.184.0

3 years ago

0.183.0

3 years ago

0.181.0

3 years ago

0.180.0

3 years ago

0.179.0

3 years ago

0.178.0

3 years ago

0.177.0

3 years ago

0.176.0

3 years ago

0.175.0

4 years ago

0.174.0

4 years ago

0.173.0

4 years ago

0.171.0

4 years ago

0.170.0

4 years ago

0.172.0

4 years ago

0.169.0

4 years ago

0.168.0

4 years ago

0.167.0

4 years ago

0.166.0

4 years ago

0.165.0

4 years ago

0.164.0

4 years ago

0.163.0

4 years ago

0.162.0

4 years ago

0.161.0

4 years ago

0.159.0

4 years ago

0.160.0

4 years ago

0.158.0

4 years ago

0.157.0

4 years ago

0.156.0

4 years ago

0.155.0

4 years ago

0.154.0

4 years ago

0.153.0

4 years ago

0.152.0

4 years ago

0.151.0

4 years ago

0.150.0

4 years ago

0.149.0

4 years ago

0.148.0

4 years ago

0.147.0

4 years ago

0.146.0

4 years ago

0.145.0

4 years ago

0.144.0

4 years ago

0.143.0

4 years ago

0.142.0

4 years ago

0.141.0

4 years ago

0.140.0

4 years ago

0.139.0

5 years ago

0.138.0

5 years ago

0.137.0

5 years ago

0.136.0

5 years ago

0.135.0

5 years ago

0.134.0

5 years ago

0.133.0

5 years ago

0.132.0

5 years ago

0.131.0

5 years ago

0.130.0

5 years ago

0.129.0

5 years ago

0.128.0

5 years ago

0.127.0

5 years ago

0.126.0

5 years ago

0.125.0

5 years ago

0.124.0

5 years ago

0.123.0

5 years ago

0.122.0

5 years ago

0.121.0

5 years ago

0.120.0

5 years ago

0.119.0

5 years ago

0.118.0

5 years ago

0.117.0

5 years ago

0.116.0

5 years ago

0.115.0

5 years ago

0.114.0

5 years ago

0.113.0

5 years ago

0.112.0

5 years ago

0.111.0

5 years ago

0.110.0

5 years ago

0.109.0

5 years ago

0.108.0

5 years ago

0.107.0

5 years ago

0.106.0

5 years ago

0.105.0

5 years ago

0.104.0

5 years ago

0.103.0

5 years ago

0.102.0

5 years ago

0.101.0

5 years ago

0.100.0

5 years ago

0.99.0

5 years ago

0.98.0

5 years ago

0.97.0

5 years ago

0.96.0

5 years ago

0.95.0

5 years ago

0.94.0

5 years ago

0.93.0

5 years ago

0.92.0

5 years ago

0.91.0

5 years ago

0.90.0

5 years ago

0.89.0

5 years ago

0.88.0

5 years ago

0.87.0

5 years ago

0.86.0

5 years ago

0.85.0

5 years ago

0.84.0

5 years ago

0.83.0

5 years ago

0.82.0

5 years ago

0.81.0

5 years ago

0.80.0

5 years ago

0.79.0

5 years ago

0.78.0

5 years ago

0.77.0

5 years ago

0.76.0

5 years ago

0.75.0

5 years ago

0.74.0

5 years ago

0.73.0

5 years ago

0.72.0

5 years ago

0.71.0

5 years ago

0.70.0

5 years ago

0.69.0

5 years ago

0.68.0

5 years ago

0.67.0

5 years ago

0.66.0

5 years ago

0.65.0

5 years ago

0.64.0

5 years ago

0.63.0

5 years ago

0.62.0

5 years ago

0.61.0

5 years ago

0.60.0

5 years ago

0.59.0

5 years ago

0.58.0

5 years ago

0.57.0

5 years ago

0.56.0

5 years ago

0.55.0

5 years ago

0.54.0

5 years ago

0.53.0

5 years ago

0.52.0

5 years ago

0.51.0

5 years ago

0.50.0

5 years ago

0.49.0

5 years ago

0.48.0

6 years ago

0.47.0

6 years ago

0.46.0

6 years ago

0.45.0

6 years ago

0.44.0

6 years ago

0.43.0

6 years ago

0.42.0

6 years ago

0.41.0

6 years ago

0.40.0

6 years ago

0.39.0

6 years ago