2
2
* Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
3
3
*/
4
4
5
- import { ParamDecorator , parseParamDecorator , populateFromGlobals , shouldQueryParamSerialize , valToString } from "./utils" ;
5
+ import {
6
+ ParamDecorator ,
7
+ parseParamDecorator ,
8
+ populateFromGlobals ,
9
+ shouldQueryParamSerialize ,
10
+ valToString
11
+ } from "./utils" ;
6
12
7
13
import { requestMetadataKey } from "./requestbody" ;
8
14
9
15
export const qpMetadataKey = "queryParam" ;
10
16
const queryStringPrefix = "?" ;
11
17
18
+ const filterAndJoin = ( strings : string [ ] ) :string => strings . filter ( s => ! ! s ) . join ( "&" )
19
+
12
20
export function serializeQueryParams ( queryParams : any , globals ?: any ) : string {
13
21
const queryStringParts : string [ ] = [ ] ;
14
- if ( ! queryParams ) return queryStringParts . join ( "&" ) ;
22
+ if ( ! queryParams ) return filterAndJoin ( queryStringParts ) ;
15
23
16
24
const fieldNames : string [ ] =
17
25
"__props__" in queryParams
@@ -84,7 +92,7 @@ export function serializeQueryParams(queryParams: any, globals?: any): string {
84
92
}
85
93
}
86
94
} ) ;
87
- return queryStringPrefix + queryStringParts . join ( "&" ) ;
95
+ return queryStringPrefix + filterAndJoin ( queryStringParts ) ;
88
96
}
89
97
90
98
// TODO: Add support for disabling percent encoding for reserved characters
@@ -94,7 +102,7 @@ function jsonSerializer(params: Record<string, any>): string {
94
102
Object . entries ( Object . assign ( { } , params ) ) . forEach ( ( [ key , value ] ) => {
95
103
query . push ( `${ key } =${ encodeURIComponent ( JSON . stringify ( value ) ) } ` ) ;
96
104
} ) ;
97
- return query . join ( "&" ) ;
105
+ return filterAndJoin ( query ) ;
98
106
}
99
107
100
108
// TODO: Add support for disabling percent encoding for reserved characters
@@ -133,7 +141,7 @@ function noExplodeSerializer(params: Record<string, any>, delimiter = ","): stri
133
141
query . push ( `${ key } =${ encodeURIComponent ( values ) } ` ) ;
134
142
}
135
143
} ) ;
136
- return query . join ( "&" ) ;
144
+ return filterAndJoin ( query ) ;
137
145
}
138
146
139
147
// TODO: Add support for disabling percent encoding for reserved characters
@@ -146,9 +154,9 @@ function formSerializerExplode(params: Record<string, any>): string {
146
154
query . push ( `${ key } =${ encodeURIComponent ( value ) } ` ) ;
147
155
else if ( Array . isArray ( value ) ) {
148
156
query . push (
149
- value
157
+ value
150
158
. map ( ( aValue ) => `${ key } =${ encodeURIComponent ( valToString ( aValue ) ) } ` )
151
- . join ( "&" )
159
+ . join ( "&" )
152
160
) ;
153
161
} else
154
162
query . push (
@@ -176,7 +184,7 @@ function formSerializerExplode(params: Record<string, any>): string {
176
184
. join ( "&" )
177
185
) ;
178
186
} ) ;
179
- return query . join ( "&" ) ;
187
+ return filterAndJoin ( query ) ;
180
188
}
181
189
182
190
// TODO: Add support for disabling percent encoding for reserved characters
@@ -232,5 +240,5 @@ function deepObjectSerializer(params: Record<string, any>): string {
232
240
. join ( "&" )
233
241
) ;
234
242
} ) ;
235
- return query . join ( "&" ) ;
243
+ return filterAndJoin ( query ) ;
236
244
}
0 commit comments