@@ -105,6 +105,14 @@ export function getValidatedQuery(
105105 return validateData ( query , validate ) ;
106106}
107107
108+ export function getRouterParams < Event extends H3Event > (
109+ event : Event ,
110+ opts ?: { decode ?: boolean } ,
111+ ) : Event extends H3Event < infer R > ? R [ "routerParams" ] : never ;
112+ export function getRouterParams < Event extends HTTPEvent > (
113+ event : Event ,
114+ opts ?: { decode ?: boolean } ,
115+ ) : NonNullable < H3Event [ "context" ] [ "params" ] > ;
108116/**
109117 * Get matched route params.
110118 *
@@ -115,14 +123,6 @@ export function getValidatedQuery(
115123 * const params = getRouterParams(event); // { key: "value" }
116124 * });
117125 */
118- export function getRouterParams < Event extends H3Event > (
119- event : Event ,
120- opts ?: { decode ?: boolean } ,
121- ) : Event extends H3Event < infer R > ? R [ "routerParams" ] : never ;
122- export function getRouterParams < Event extends HTTPEvent > (
123- event : Event ,
124- opts ?: { decode ?: boolean } ,
125- ) : NonNullable < H3Event [ "context" ] [ "params" ] > ;
126126export function getRouterParams < Event extends HTTPEvent > (
127127 event : Event ,
128128 opts : { decode ?: boolean } = { } ,
@@ -196,19 +196,11 @@ export function getValidatedRouterParams(
196196 return validateData ( routerParams , validate ) ;
197197}
198198
199- /**
200- * Get a matched route param by name.
201- *
202- * If `decode` option is `true`, it will decode the matched route param using `decodeURI`.
203- *
204- * @example
205- * app.get("/", (event) => {
206- * const param = getRouterParam(event, "key");
207- * });
208- */
209199export function getRouterParam <
210200 Event extends H3Event ,
211- Key extends Event extends H3Event < infer R > ? keyof R [ "routerParams" ] & string : never ,
201+ Key extends Event extends H3Event < infer R >
202+ ? keyof R [ "routerParams" ] & string
203+ : never ,
212204> (
213205 event : Event ,
214206 name : Key ,
@@ -219,6 +211,16 @@ export function getRouterParam<Event extends HTTPEvent>(
219211 name : string ,
220212 opts ?: { decode ?: boolean } ,
221213) : string | undefined ;
214+ /**
215+ * Get a matched route param by name.
216+ *
217+ * If `decode` option is `true`, it will decode the matched route param using `decodeURI`.
218+ *
219+ * @example
220+ * app.get("/", (event) => {
221+ * const param = getRouterParam(event, "key");
222+ * });
223+ */
222224export function getRouterParam < Event extends HTTPEvent > (
223225 event : Event ,
224226 name : string ,
0 commit comments