itty-router
Advanced tools
Comparing version 0.7.1 to 0.7.2
{ | ||
"name": "itty-router", | ||
"version": "0.7.1", | ||
"version": "0.7.2", | ||
"description": "Tiny, zero-dependency router with route param and query parsing.", | ||
@@ -5,0 +5,0 @@ "main": "src/Router.js", |
const Router = () => new Proxy({}, { | ||
get: (obj, prop) => prop === 'handle' | ||
? req => { | ||
? (req) => { | ||
let { url, method = 'GET' } = req | ||
let u = new URL(url) | ||
for (let [route, handler] of obj[method.toLowerCase()] || []) { | ||
u = new URL(url) | ||
for ([route, handler] of obj[method.toLowerCase()] || []) { | ||
if (hit = u.pathname.match(route)) { | ||
@@ -15,3 +15,3 @@ return handler(Object.assign(req, { | ||
} | ||
: (path, handler) => | ||
: (path, handler) => | ||
(obj[prop] = obj[prop] || []).push([`^${path.replace('*', '.*').replace(/(\/:([^\/\?]+)(\?)?)/gi, '/$3(?<$2>[^\/]+)$3')}$`, handler]) && obj | ||
@@ -18,0 +18,0 @@ }) |
@@ -99,3 +99,9 @@ const { Router } = require('./Router') | ||
}) | ||
it(`won't throw on unknown method`, () => { | ||
expect(() => | ||
router.handle({ method: 'CUSTOM', url: 'https://example.com/foo' }) // no method listed | ||
).not.toThrow() | ||
}) | ||
}) | ||
}) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
13612
126