2.36.0 • Published 9 months ago

@ditojs/router v2.36.0

Weekly downloads
2,403
License
MIT
Repository
-
Last release
9 months 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.34.0

10 months ago

2.34.2

10 months ago

2.33.0

10 months ago

2.32.0

10 months ago

2.32.2

10 months ago

2.36.0

9 months ago

2.35.0

9 months ago

2.31.0

1 year ago

2.30.0

1 year ago

2.29.0

1 year ago

2.28.1

1 year ago

2.28.0

1 year ago

2.27.0

1 year ago

2.26.1

1 year ago

2.26.0

1 year ago

2.25.0

1 year ago

2.24.0

1 year ago

2.23.0

1 year ago

2.22.0

1 year ago

2.21.0

2 years ago

2.19.0

2 years ago

2.20.0

2 years ago

2.18.0

2 years ago

2.11.0

2 years ago

2.11.1

2 years ago

2.10.5

2 years ago

2.17.0

2 years ago

2.16.0

2 years ago

2.15.0

2 years ago

2.14.1

2 years ago

2.13.0

2 years ago

2.12.0

2 years ago

2.10.0

2 years ago

2.9.0

2 years ago

2.8.0

2 years ago

2.7.1

2 years ago

2.7.0

2 years ago

2.4.1

2 years ago

2.6.0

2 years ago

2.5.0

2 years ago

2.4.0

2 years ago

2.3.0

2 years ago

2.2.0

2 years ago

2.1.1

2 years ago

2.1.0

2 years ago

2.0.5

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.29.0

2 years ago

1.24.0

2 years ago

1.25.0

2 years ago

1.25.1

2 years ago

1.26.0

2 years ago

1.27.0

2 years ago

1.30.0

2 years ago

1.28.0

2 years ago

1.22.0

2 years ago

1.23.0

2 years ago

1.18.0

3 years ago

1.21.0

3 years ago

1.19.0

3 years ago

1.14.0

3 years ago

1.15.0

3 years ago

1.16.0

3 years ago

1.17.0

3 years ago

1.20.0

3 years ago

1.10.1

3 years ago

1.12.0

3 years ago

1.11.0

3 years ago

1.13.1

3 years ago

1.13.0

3 years ago

1.10.0

3 years ago

1.9.0

3 years ago

1.6.0

3 years ago

1.5.5

3 years ago

1.8.0

3 years ago

1.5.0

3 years ago

1.4.3

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.0.0-rc.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago

0.274.0

3 years ago

0.275.0

3 years ago

0.273.0

3 years ago

0.272.0

4 years ago

0.271.0

4 years ago

0.270.0

4 years ago

0.269.0

4 years ago

0.268.0

4 years ago

0.266.0

4 years ago

0.267.0

4 years ago

0.264.0

4 years ago

0.265.0

4 years ago

0.263.0

4 years ago

0.262.0

4 years ago

0.261.0

4 years ago

0.260.0

4 years ago

0.259.0

4 years ago

0.258.0

4 years ago

0.257.0

4 years ago

0.255.0

4 years ago

0.256.0

4 years ago

0.253.0

4 years ago

0.254.0

4 years ago

0.251.0

4 years ago

0.252.0

4 years ago

0.247.0

4 years ago

0.248.0

4 years ago

0.245.0

4 years ago

0.246.0

4 years ago

0.250.0

4 years ago

0.249.0

4 years ago

0.243.0

4 years ago

0.244.0

4 years ago

0.242.0

4 years ago

0.241.0

4 years ago

0.236.0

4 years ago

0.240.0

4 years ago

0.237.0

4 years ago

0.235.0

4 years ago

0.238.0

4 years ago

0.239.0

4 years ago

0.225.0

4 years ago

0.234.0

4 years ago

0.228.0

4 years ago

0.232.0

4 years ago

0.229.0

4 years ago

0.233.0

4 years ago

0.226.0

4 years ago

0.230.0

4 years ago

0.227.0

4 years ago

0.231.0

4 years ago

0.224.0

4 years ago

0.223.0

4 years ago

0.222.0

4 years ago

0.220.0

4 years ago

0.221.0

4 years ago

0.219.0

4 years ago

0.217.0

4 years ago

0.218.0

4 years ago

0.216.0

4 years ago

0.215.0

4 years ago

0.213.0

4 years ago

0.214.0

4 years ago

0.211.0

4 years ago

0.212.0

4 years ago

0.210.0

4 years ago

0.209.0

4 years ago

0.208.0

4 years ago

0.206.0

4 years ago

0.207.0

4 years ago

0.205.0

4 years ago

0.204.0

4 years ago

0.203.0

4 years ago

0.202.0

4 years ago

0.201.0

4 years ago

0.200.0

5 years ago

0.199.0

5 years ago

0.198.0

5 years ago

0.197.0

5 years ago

0.196.0

5 years ago

0.194.0

5 years ago

0.195.0

5 years ago

0.193.0

5 years ago

0.192.0

5 years ago

0.190.0

5 years ago

0.191.0

5 years ago

0.189.0

5 years ago

0.188.0

5 years ago

0.187.0

5 years ago

0.186.0

5 years ago

0.185.0

5 years ago

0.182.0

5 years ago

0.184.0

5 years ago

0.183.0

5 years ago

0.181.0

5 years ago

0.180.0

5 years ago

0.179.0

5 years ago

0.178.0

5 years ago

0.177.0

5 years ago

0.176.0

5 years ago

0.175.0

5 years ago

0.174.0

5 years ago

0.173.0

5 years ago

0.171.0

5 years ago

0.170.0

5 years ago

0.172.0

5 years ago

0.169.0

5 years ago

0.168.0

5 years ago

0.167.0

5 years ago

0.166.0

5 years ago

0.165.0

5 years ago

0.164.0

5 years ago

0.163.0

5 years ago

0.162.0

5 years ago

0.161.0

5 years ago

0.159.0

5 years ago

0.160.0

5 years ago

0.158.0

5 years ago

0.157.0

5 years ago

0.156.0

5 years ago

0.155.0

5 years ago

0.154.0

5 years ago

0.153.0

5 years ago

0.152.0

5 years ago

0.151.0

5 years ago

0.150.0

5 years ago

0.149.0

5 years ago

0.148.0

5 years ago

0.147.0

5 years ago

0.146.0

5 years ago

0.145.0

5 years ago

0.144.0

5 years ago

0.143.0

5 years ago

0.142.0

5 years ago

0.141.0

6 years ago

0.140.0

6 years ago

0.139.0

6 years ago

0.138.0

6 years ago

0.137.0

6 years ago

0.136.0

6 years ago

0.135.0

6 years ago

0.134.0

6 years ago

0.133.0

6 years ago

0.132.0

6 years ago

0.131.0

6 years ago

0.130.0

6 years ago

0.129.0

6 years ago

0.128.0

6 years ago

0.127.0

6 years ago

0.126.0

6 years ago

0.125.0

6 years ago

0.124.0

6 years ago

0.123.0

6 years ago

0.122.0

6 years ago

0.121.0

6 years ago

0.120.0

6 years ago

0.119.0

6 years ago

0.118.0

6 years ago

0.117.0

6 years ago

0.116.0

6 years ago

0.115.0

6 years ago

0.114.0

6 years ago

0.113.0

6 years ago

0.112.0

6 years ago

0.111.0

6 years ago

0.110.0

6 years ago

0.109.0

6 years ago

0.108.0

6 years ago

0.107.0

6 years ago

0.106.0

6 years ago

0.105.0

6 years ago

0.104.0

6 years ago

0.103.0

6 years ago

0.102.0

6 years ago

0.101.0

6 years ago

0.100.0

6 years ago

0.99.0

6 years ago

0.98.0

6 years ago

0.97.0

6 years ago

0.96.0

6 years ago

0.95.0

6 years ago

0.94.0

6 years ago

0.93.0

6 years ago

0.92.0

6 years ago

0.91.0

6 years ago

0.90.0

6 years ago

0.89.0

6 years ago

0.88.0

6 years ago

0.87.0

6 years ago

0.86.0

6 years ago

0.85.0

6 years ago

0.84.0

6 years ago

0.83.0

6 years ago

0.82.0

6 years ago

0.81.0

6 years ago

0.80.0

6 years ago

0.79.0

6 years ago

0.78.0

6 years ago

0.77.0

6 years ago

0.76.0

6 years ago

0.75.0

6 years ago

0.74.0

6 years ago

0.73.0

6 years ago

0.72.0

6 years ago

0.71.0

6 years ago

0.70.0

6 years ago

0.69.0

6 years ago

0.68.0

6 years ago

0.67.0

6 years ago

0.66.0

6 years ago

0.65.0

6 years ago

0.64.0

6 years ago

0.63.0

6 years ago

0.62.0

6 years ago

0.61.0

6 years ago

0.60.0

7 years ago

0.59.0

7 years ago

0.58.0

7 years ago

0.57.0

7 years ago

0.56.0

7 years ago

0.55.0

7 years ago

0.54.0

7 years ago

0.53.0

7 years ago

0.52.0

7 years ago

0.51.0

7 years ago

0.50.0

7 years ago

0.49.0

7 years ago

0.48.0

7 years ago

0.47.0

7 years ago

0.46.0

7 years ago

0.45.0

7 years ago

0.44.0

7 years ago

0.43.0

7 years ago

0.42.0

7 years ago

0.41.0

7 years ago

0.40.0

7 years ago

0.39.0

7 years ago