@@ -15,21 +15,19 @@ export const paramsSerializer: CustomParamsSerializer = (params) => {
15
15
)
16
16
}
17
17
for ( const v of value ) {
18
- throwIfUnserializable ( name , v )
19
- searchParams . append ( name , v )
18
+ searchParams . append ( name , serialize ( name , v ) )
20
19
}
21
20
continue
22
21
}
23
22
24
- throwIfUnserializable ( name , value )
25
- searchParams . set ( name , value )
23
+ searchParams . set ( name , serialize ( name , value ) )
26
24
}
27
25
28
26
searchParams . sort ( )
29
27
return searchParams . toString ( )
30
28
}
31
29
32
- const throwIfUnserializable = ( k : string , v : unknown ) : void => {
30
+ const serialize = ( k : string , v : unknown ) : string => {
33
31
if ( v == null ) {
34
32
throw new UnserializableParamError ( k , `is ${ v } or contains ${ v } ` )
35
33
}
@@ -44,6 +42,17 @@ const throwIfUnserializable = (k: string, v: unknown): void => {
44
42
if ( typeof v === 'object' ) {
45
43
throw new UnserializableParamError ( k , 'is an object or contains an object' )
46
44
}
45
+
46
+ if ( typeof v === 'symbol' ) {
47
+ throw new UnserializableParamError ( k , 'is a symbol' )
48
+ }
49
+
50
+ if ( typeof v === 'string' ) return v . toString ( )
51
+ if ( typeof v === 'number' ) return v . toString ( )
52
+ if ( typeof v === 'bigint' ) return v . toString ( )
53
+ if ( typeof v === 'boolean' ) return v . toString ( )
54
+
55
+ throw new UnserializableParamError ( k , `is a ${ typeof v } ` )
47
56
}
48
57
49
58
export class UnserializableParamError extends Error {
0 commit comments