Lightweight library to provide an API for handling routes
import buildRouter from '@hexlet/code';
const routes = [
{
path: '/courses/:course_id/exercises/:id',
constraints: { id: /\d+/, course_id: (courseId) => courseId.startsWith('js') },
handler: () => 'exercise!',
},
];
const router = buildRouter(routes);
const result = router.serve({ path: '/courses/1/exercises/js' });
// { handler: [Function handler] , path: '/courses/1/exercises/js', params: { id: '1', course_id: 'js' }, method: 'GET' }
result.handler(result.params); // exercise!
router.serve('/courses/noop/exercises/noop'); // Error: No such path