/**
* Param parser to use for this param.
*/
- parser: ParamParser<TOut, TIn>,
+ parser?: ParamParser<TOut, TIn>,
/**
* Is tha param a repeatable param and should be converted to an array
? (currentMatch?.split('/') || []).map<string>(decode)
: decode(currentMatch)
- params[paramName] = (parser.get || identityFn)(value)
+ params[paramName] = (parser?.get || identityFn)(value)
}
if (
>)[keyof TParamsOptions][0]
let repeatable: boolean | undefined
let optional: boolean | undefined
- let lastParamPart: number | undefined
let value: ReturnType<NonNullable<ParamParser['set']>> | undefined
const path =
'/' +
} 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()
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) {