Skip to content

Commit 84e4510

Browse files
ferdikoomenmoretalk
authored andcommitted
- Removed dependency if URLSearchParams
(cherry picked from commit ca09ad5)
1 parent 88c6b01 commit 84e4510

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed
Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
1-
function getQueryString(params: Record<string, any>): string {
2-
const qs: string[] = [];
1+
const getQueryString = (params: Record<string, any>): string => {
2+
const qs: string[] = [];
33

4-
const append = (key: string, value: any) => {
5-
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
6-
};
4+
const append = (key: string, value: any) => {
5+
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
6+
};
7+
8+
const process = (key: string, value: any) => {
9+
if (isDefined(value)) {
10+
if (Array.isArray(value)) {
11+
value.forEach(v => {
12+
process(key, v);
13+
});
14+
} else if (typeof value === 'object') {
15+
Object.entries(value).forEach(([k, v]) => {
16+
process(`${key}[${k}]`, v);
17+
});
18+
} else {
19+
append(key, value);
20+
}
21+
}
22+
};
723

824
Object.entries(params)
925
.filter(([_, value]) => isDefined(value))
@@ -15,9 +31,9 @@ function getQueryString(params: Record<string, any>): string {
1531
}
1632
});
1733

18-
if (qs.length > 0) {
19-
return `?${qs.join('&')}`;
20-
}
34+
if (qs.length > 0) {
35+
return `?${qs.join('&')}`;
36+
}
2137

2238
return '';
2339
}

0 commit comments

Comments
 (0)