From: Eduardo San Martin Morote Date: Mon, 25 Aug 2025 15:17:28 +0000 (+0200) Subject: refactor: optional param parser X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=be1679c2ad80226c0d0a1820232e2bb52bd6e2fa;p=thirdparty%2Fvuejs%2Frouter.git refactor: optional param parser --- diff --git a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.ts b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.ts index 2363a166..8505d1a6 100644 --- a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.ts +++ b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.ts @@ -95,7 +95,7 @@ export type MatcherPatternPathDynamic_ParamOptions< /** * Param parser to use for this param. */ - parser: ParamParser, + parser?: ParamParser, /** * Is tha param a repeatable param and should be converted to an array @@ -181,7 +181,7 @@ export class MatcherPatternPathDynamic< ? (currentMatch?.split('/') || []).map(decode) : decode(currentMatch) - params[paramName] = (parser.get || identityFn)(value) + params[paramName] = (parser?.get || identityFn)(value) } if ( @@ -206,7 +206,6 @@ export class MatcherPatternPathDynamic< >)[keyof TParamsOptions][0] let repeatable: boolean | undefined let optional: boolean | undefined - let lastParamPart: number | undefined let value: ReturnType> | undefined const path = '/' + @@ -217,8 +216,7 @@ export class MatcherPatternPathDynamic< } else if (typeof part === 'number') { paramName = this.paramsKeys[paramIndex++] ;[parser, repeatable, optional] = this.params[paramName] - lastParamPart = part - value = (parser.set || identityFn)(params[paramName]) + value = (parser?.set || identityFn)(params[paramName]) if (Array.isArray(value) && !value.length && !optional) { throw miss() @@ -237,7 +235,7 @@ export class MatcherPatternPathDynamic< paramName = this.paramsKeys[paramIndex++] ;[parser, repeatable, optional] = this.params[paramName] - value = (parser.set || identityFn)(params[paramName]) + value = (parser?.set || identityFn)(params[paramName]) // param cannot be repeatable when in a sub segment if (__DEV__ && repeatable) {