MediumPro challengePythonJavaScriptTypeScript

Simple Router with Params

Node.jsRoutingHTTP

Match URL paths against route patterns with :param placeholders.

solve(routes, path) returns { pattern, params } for the first matching
route, or null if none.

E.g. routes ['/users/:id', '/posts/:slug/comments/:cid'], path /users/42
{ pattern: '/users/:id', params: { id: '42' } }.

Sample tests

Test #1One param
Input: [["/users/:id"],"/users/42"]
Output: {"params":{"id":"42"},"pattern":"/users/:id"}
Test #2Two params
Input: [["/posts/:slug/comments/:cid"],"/posts/hello/comments/7"]
Output: {"params":{"cid":"7","slug":"hello"},"pattern":"/posts/:slug/comments/:cid"}
Test #3No match
Input: [["/users/:id"],"/posts/42"]
Output: null
Test #4Picks longer match
Input: [["/a","/a/:b"],"/a/x"]
Output: {"params":{"b":"x"},"pattern":"/a/:b"}
Test #5No path arg → undefined → null
Input: [["/health"]]
Output: null