A tiny web framework
npm i @helloandre/tini
a function that expects a function as it's only parameter, and is passed an object containing the routing api.
import tini from '@helloandre/tini'
tini(router => {
router.get('/:key', req => req.params.key);
})
- get(route: string, ...callbacks: Function)
- post(route: string, ...callbacks: Function)
- put(route: string, ...callbacks: Function)
- del(route: string, ...callbacks: Function)
- route(method: string, route: string, ...callbacks: Function) - a generic catch all for any other methods you may need to support
- with(router: Router)
For more in depth route path documentation, see path-to-regexp
Return String
tini(router => {
router.get('/someroute', req => {
return 'Hello, World!';
});
});
Route Parameters + Query String
// url: /myKey?p=1
tini(router => {
router.get('/:key', req => {
// outputs "myKey, 1"
return `${req.params.key}, ${req.query.p}`;
});
});
Return JSON
tini(router => {
router.get('/someroute', req => {
return { hello: 'world' };
});
});
Return A Promise
tini(router => {
router.get('/someroute', req => {
return Promise.resolve('hello, world');
});
});
Return A Response
tini(router => {
router.get('/someroute', req => {
return new Response("Not Found", { status: 404 });
});
});
Middleware
tini(router => {
router.get('/someroute',
req => {
req.intermediateValue = 'somevalue';
if (req.query.secret !== 'mysecret') {
return new Response('Unauthorized', { status: 401 });
}
},
req => {
return req.intermediateValue;
}
);
});
Nested Routers
import tini, { Router } from '@helloandre/tini'
tini(router => {
const api = new Router(`/api/v1`);
api.get('/:name', (req) => ({ params: req.params, query: req.query }));
router.with(api);
router.get('(.*)', () => new Response("Not Found", { status: 404 }));
});
MIT