UNPKG

@ffsm/napi

Version:

Napi - A framework using with Next.js for building APIs.

29 lines (28 loc) 832 B
export function matchRoute(route, path) { if (!route && !path) { return {}; } if (!route || !path) { return null; } const routeParts = route.replace(/^\/|\/$/g, '').split('/').filter(Boolean); const pathParts = path.replace(/^\/|\/$/g, '').split('/').filter(Boolean); const routeLength = routeParts.length; if (pathParts.length > routeLength) { return null; } const params = {}; for (let i = 0; i < routeLength; i++) { const routePart = routeParts[i]; const pathPart = pathParts[i]; if (routePart.startsWith(':')) { const paramName = routePart.slice(1); params[paramName] = pathPart; continue; } if (routePart !== pathPart) { return null; } } return params; }