Skip to content
This repository was archived by the owner on Jan 15, 2025. It is now read-only.

Commit 9f639f9

Browse files
committed
feat: make parseStringParam return type depend on defaultValue
1 parent 2d396c5 commit 9f639f9

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

packages/lib/src/search-params.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@ function parseQueryValues(value: string[] | string): string[] {
1010
return Array.isArray(value) ? value : [value];
1111
}
1212

13-
export function parseStringParam(
13+
export function parseStringParam<T extends string | undefined>(
1414
paramValue: string[] | string | undefined,
15-
defaultValue: string | undefined = undefined,
16-
): string | undefined {
15+
defaultValue: T = undefined as T,
16+
): string | T {
1717
const parsedValue = parseQueryValue(paramValue);
1818

1919
return parsedValue || defaultValue;
2020
}
2121

22-
export function parseNumberParam(
22+
export function parseNumberParam<T extends number | undefined>(
2323
paramValue: string[] | string | undefined,
24-
defaultValue: number | undefined = NaN,
25-
): number {
24+
defaultValue: T = undefined as T,
25+
): number | T {
2626
const parsedValue = parseQueryValue(paramValue);
2727

2828
return Number(parsedValue) || defaultValue;
@@ -37,21 +37,21 @@ export function parseJoinedStringParam(
3737
return parsedValue?.split(separator) || [];
3838
}
3939

40-
export function parseStringParams(
40+
export function parseStringParams<T extends string[] | undefined>(
4141
paramValue: string[] | string | undefined,
42-
defaultValue: string[] | undefined = undefined,
43-
): string[] | undefined {
42+
defaultValue: T = undefined as T,
43+
): string[] | T {
4444
if (!paramValue || paramValue.length === 0) {
4545
return defaultValue;
4646
}
4747

4848
return parseQueryValues(paramValue);
4949
}
5050

51-
export function parseNumberParams(
51+
export function parseNumberParams<T extends number[] | undefined>(
5252
paramValue: string[] | string | undefined,
53-
defaultValue: number[] | undefined = undefined,
54-
): number[] | undefined {
53+
defaultValue: T = undefined as T,
54+
): number[] | T {
5555
if (!paramValue) {
5656
return defaultValue;
5757
}

0 commit comments

Comments
 (0)