Skip to content

Commit a46b3c6

Browse files
committed
refactor(types): reorganize getRouterParams and getRouterParam function signatures
1 parent 1b7a694 commit a46b3c6

File tree

1 file changed

+21
-19
lines changed

1 file changed

+21
-19
lines changed

src/utils/request.ts

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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"]>;
126126
export 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-
*/
209199
export 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+
*/
222224
export function getRouterParam<Event extends HTTPEvent>(
223225
event: Event,
224226
name: string,

0 commit comments

Comments
 (0)