| 344 | } |
| 345 | |
| 346 | function matchPath(pattern, pathname) { |
| 347 | const patternParts = pattern.split('/'); |
| 348 | const pathParts = pathname.split('/'); |
| 349 | |
| 350 | if (patternParts.length !== pathParts.length) return null; |
| 351 | |
| 352 | const params = {}; |
| 353 | for (let i = 0; i < patternParts.length; i++) { |
| 354 | if (patternParts[i].startsWith(':')) { |
| 355 | params[patternParts[i].slice(1)] = pathParts[i]; |
| 356 | } else if (patternParts[i] !== pathParts[i]) { |
| 357 | return null; |
| 358 | } |
| 359 | } |
| 360 | return params; |
| 361 | } |
| 362 | |
| 363 | module.exports = { ProxyHttpServer, parseBody, sendJson, DEFAULT_PORT, DEFAULT_MAX_BODY_BYTES, resolveMaxBodyBytes }; |