@@ -28,6 +28,7 @@ import formurlencoded from 'form-urlencoded'
2828import { PubSub } from 'graphql-subscriptions'
2929import urljoin from 'url-join'
3030import FormData from 'form-data'
31+ import * as querystring from 'query-string' ;
3132
3233const pubsub = new PubSub ( )
3334
@@ -722,7 +723,11 @@ export function getResolver<TSource, TContext, TArgs>({
722723
723724 resolveData . usedRequestOptions = options
724725 resolveData . usedStatusCode = operation . statusCode
725- setSearchParamsFromObj ( url , qs , [ ] )
726+ if ( requestOptions . useQueryString ) {
727+ setSearchFromObj ( url , qs )
728+ } else {
729+ setSearchParamsFromObj ( url , qs , [ ] )
730+ }
726731 resolveData . url = url . toString ( ) . replace ( url . search , '' )
727732
728733 // Make the call
@@ -1411,6 +1416,12 @@ export function extractRequestDataFromArgs<TSource, TContext, TArgs>(
14111416 return { path, qs, headers }
14121417}
14131418
1419+ // This can be extended in the future to take an optional object which controls
1420+ // the stringify options as listed here https://github.com/sindresorhus/query-string#stringifyobject-options
1421+ const setSearchFromObj = ( url : URL , obj : any ) => {
1422+ url . search = querystring . stringify ( obj ) ;
1423+ }
1424+
14141425const setSearchParamsFromObj = ( url : URL , obj : any , path : string [ ] ) => {
14151426 for ( const key in obj ) {
14161427 const val = obj [ key ]
0 commit comments