2.36.0 • Published 10 months ago

@ditojs/router v2.36.0

Weekly downloads
2,403
License
MIT
Repository
-
Last release
10 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

11 months ago

2.32.0

11 months ago

2.32.2

11 months ago

2.36.0

10 months ago

2.35.0

10 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

2 years 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

3 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

5 years ago

0.201.0

5 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

7 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