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

0.1.4 • Public • Published

Rauter

GitHub Logo GitHub Logo Build Status

Rauter is an experimental router library written in Typescript, for any framework based in the Node.js's HTTP library, comes with a params parser by default.

I've built this as a workaround for handling nested routes inside firebase functions.

Installation

With npm:

$ npm i rauter

With yarn:

$ yarn add rauter

Example

With HTTP from Node.js

const http = require('http')
const Rauter = require('rauter')
const port = 3000

const router = new Rauter('url not found')

router.get('/', (req, res) => {
  res.end('hello')
})

router.get('/hello/:name', (req, res) => {
  res.end(`hello ${req.params.id}`)
})

const requestHandler = (request, response) => {
  Rauter.use(router, request, response)
}

const server = http.createServer(requestHandler)

server.listen(port, err => {
  if (err) {
    return console.log('something bad happened', err)
  }

  console.log(`server is listening on ${port}`)
})

With Firebase Cloud Functions

const functions = require('firebase-functions')
const Rauter = require('rauter')

const router = new Rauter()

router.get('/', (req, res) => {
  res.send('hello world')
})

router.get('/greetings/:name', (req, res) => {
  res.send(`hello ${req.params.name}`)
})

exports.functionName = functions.https.onRequest((req, res) => {
  Rauter.use(router, req, res)
})

TODO

  • [ ] Write tests
  • [ ] Make a middleware interface
  • [ ] Use with app.use in koa, express and similar.

Readme

Keywords

none

Package Sidebar

Install

npm i rauter

Weekly Downloads

1

Version

0.1.4

License

MIT

Unpacked Size

62.6 kB

Total Files

10

Last publish

Collaborators

  • leonelv