@@ -15,21 +15,19 @@ export const paramsSerializer: CustomParamsSerializer = (params) => {
1515 )
1616 }
1717 for ( const v of value ) {
18- throwIfUnserializable ( name , v )
19- searchParams . append ( name , v )
18+ searchParams . append ( name , serialize ( name , v ) )
2019 }
2120 continue
2221 }
2322
24- throwIfUnserializable ( name , value )
25- searchParams . set ( name , value )
23+ searchParams . set ( name , serialize ( name , value ) )
2624 }
2725
2826 searchParams . sort ( )
2927 return searchParams . toString ( )
3028}
3129
32- const throwIfUnserializable = ( k : string , v : unknown ) : void => {
30+ const serialize = ( k : string , v : unknown ) : string => {
3331 if ( v == null ) {
3432 throw new UnserializableParamError ( k , `is ${ v } or contains ${ v } ` )
3533 }
@@ -44,6 +42,17 @@ const throwIfUnserializable = (k: string, v: unknown): void => {
4442 if ( typeof v === 'object' ) {
4543 throw new UnserializableParamError ( k , 'is an object or contains an object' )
4644 }
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 } ` )
4756}
4857
4958export class UnserializableParamError extends Error {
0 commit comments