diff --git a/src/services/deepLinks.ts b/src/services/deepLinks.ts index f3202552..03e252e9 100644 --- a/src/services/deepLinks.ts +++ b/src/services/deepLinks.ts @@ -119,6 +119,15 @@ export class DeepLinkHandler { const [path, queryString] = parts[1].split("?"); const [routePath, param] = path.split("/"); + // Validate route exists before proceeding + if (!this.ROUTE_MAP[routePath]) { + throw { + code: "INVALID_ROUTE", + message: `Invalid route path: ${routePath}`, + details: { routePath } + }; + } + const query: Record = {}; if (queryString) { new URLSearchParams(queryString).forEach((value, key) => { @@ -128,11 +137,9 @@ export class DeepLinkHandler { const params: Record = {}; if (param) { - if (this.ROUTE_MAP[routePath].paramKey) { - params[this.ROUTE_MAP[routePath].paramKey] = param; - } else { - params["id"] = param; - } + // Now we know routePath exists in ROUTE_MAP + const routeConfig = this.ROUTE_MAP[routePath]; + params[routeConfig.paramKey ?? "id"] = param; } return { path: routePath, params, query }; }