22 * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
33 */
44
5- import { ParamDecorator , parseParamDecorator , populateFromGlobals , shouldQueryParamSerialize , valToString } from "./utils" ;
5+ import {
6+ ParamDecorator ,
7+ parseParamDecorator ,
8+ populateFromGlobals ,
9+ shouldQueryParamSerialize ,
10+ valToString
11+ } from "./utils" ;
612
713import { requestMetadataKey } from "./requestbody" ;
814
915export const qpMetadataKey = "queryParam" ;
1016const queryStringPrefix = "?" ;
1117
18+ const filterAndJoin = ( strings : string [ ] ) :string => strings . filter ( s => ! ! s ) . join ( "&" )
19+
1220export function serializeQueryParams ( queryParams : any , globals ?: any ) : string {
1321 const queryStringParts : string [ ] = [ ] ;
14- if ( ! queryParams ) return queryStringParts . join ( "&" ) ;
22+ if ( ! queryParams ) return filterAndJoin ( queryStringParts ) ;
1523
1624 const fieldNames : string [ ] =
1725 "__props__" in queryParams
@@ -84,7 +92,7 @@ export function serializeQueryParams(queryParams: any, globals?: any): string {
8492 }
8593 }
8694 } ) ;
87- return queryStringPrefix + queryStringParts . join ( "&" ) ;
95+ return queryStringPrefix + filterAndJoin ( queryStringParts ) ;
8896}
8997
9098// TODO: Add support for disabling percent encoding for reserved characters
@@ -94,7 +102,7 @@ function jsonSerializer(params: Record<string, any>): string {
94102 Object . entries ( Object . assign ( { } , params ) ) . forEach ( ( [ key , value ] ) => {
95103 query . push ( `${ key } =${ encodeURIComponent ( JSON . stringify ( value ) ) } ` ) ;
96104 } ) ;
97- return query . join ( "&" ) ;
105+ return filterAndJoin ( query ) ;
98106}
99107
100108// TODO: Add support for disabling percent encoding for reserved characters
@@ -133,7 +141,7 @@ function noExplodeSerializer(params: Record<string, any>, delimiter = ","): stri
133141 query . push ( `${ key } =${ encodeURIComponent ( values ) } ` ) ;
134142 }
135143 } ) ;
136- return query . join ( "&" ) ;
144+ return filterAndJoin ( query ) ;
137145}
138146
139147// TODO: Add support for disabling percent encoding for reserved characters
@@ -146,9 +154,9 @@ function formSerializerExplode(params: Record<string, any>): string {
146154 query . push ( `${ key } =${ encodeURIComponent ( value ) } ` ) ;
147155 else if ( Array . isArray ( value ) ) {
148156 query . push (
149- value
157+ value
150158 . map ( ( aValue ) => `${ key } =${ encodeURIComponent ( valToString ( aValue ) ) } ` )
151- . join ( "&" )
159+ . join ( "&" )
152160 ) ;
153161 } else
154162 query . push (
@@ -176,7 +184,7 @@ function formSerializerExplode(params: Record<string, any>): string {
176184 . join ( "&" )
177185 ) ;
178186 } ) ;
179- return query . join ( "&" ) ;
187+ return filterAndJoin ( query ) ;
180188}
181189
182190// TODO: Add support for disabling percent encoding for reserved characters
@@ -232,5 +240,5 @@ function deepObjectSerializer(params: Record<string, any>): string {
232240 . join ( "&" )
233241 ) ;
234242 } ) ;
235- return query . join ( "&" ) ;
243+ return filterAndJoin ( query ) ;
236244}
0 commit comments