@@ -7754,7 +7754,7 @@ var QueryBuilder = /** @class */ (function () {
77547754 if ( allowIdFields === void 0 ) { allowIdFields = false ; }
77557755 model = this . getModel ( model ) ;
77567756 ignoreModels . push ( model ) ;
7757- var params = this . buildArguments ( args , false , allowIdFields ) ;
7757+ var params = this . buildArguments ( args , false , multiple , allowIdFields ) ;
77587758 var fields = "\n " + model . getQueryFields ( ) . join ( ' ' ) + "\n " + this . buildRelationsQuery ( model , ignoreModels ) + "\n " ;
77597759 if ( multiple ) {
77607760 return "\n " + ( name ? name : model . pluralName ) + params + " {\n nodes {\n " + fields + "\n }\n }\n " ;
@@ -7791,7 +7791,7 @@ var QueryBuilder = /** @class */ (function () {
77917791 if ( ! name )
77927792 name = ( multiple ? model . pluralName : model . singularName ) ;
77937793 // build query
7794- var query = type + " " + upcaseFirstLetter ( name ) + this . buildArguments ( args , true ) + " {\n" +
7794+ var query = type + " " + upcaseFirstLetter ( name ) + this . buildArguments ( args , true , false ) + " {\n" +
77957795 ( " " + this . buildField ( model , multiple , args , [ ] , name , true ) + "\n" ) +
77967796 "}" ;
77977797 return src ( query ) ;
@@ -7881,13 +7881,17 @@ var QueryBuilder = /** @class */ (function () {
78817881 * 3) Fields with variables (signature = false)
78827882 * query user(id: $id)
78837883 *
7884+ * 4) Filter fields with variables (signature = false, filter = true)
7885+ * query users(filter: { active: $active })
7886+ *
78847887 * @param {Arguments | undefined } args
78857888 * @param {boolean } signature When true, then this method generates a query signature instead of key/value pairs
78867889 * @param {boolean } allowIdFields If true, ID fields will be included in the arguments list
78877890 * @returns {String }
78887891 */
7889- QueryBuilder . prototype . buildArguments = function ( args , signature , allowIdFields ) {
7892+ QueryBuilder . prototype . buildArguments = function ( args , signature , filter , allowIdFields ) {
78907893 if ( signature === void 0 ) { signature = false ; }
7894+ if ( filter === void 0 ) { filter = false ; }
78917895 if ( allowIdFields === void 0 ) { allowIdFields = true ; }
78927896 if ( args === undefined )
78937897 return '' ;
@@ -7904,25 +7908,34 @@ var QueryBuilder = /** @class */ (function () {
79047908 // Case 2 (User!)
79057909 typeOrValue = value . __type + 'Input!' ;
79067910 }
7907- else if ( key === 'id' ) {
7911+ else if ( key === 'id' || key . endsWith ( 'Id' ) ) {
79087912 // Case 1 (ID!)
79097913 typeOrValue = 'ID!' ;
79107914 }
79117915 else {
79127916 // Case 1 (String!)
7913- typeOrValue = typeof value === 'number' ? 'Number!' : 'String!' ;
7917+ if ( typeof value === 'number' )
7918+ typeOrValue = 'Int' ;
7919+ if ( typeof value === 'string' )
7920+ typeOrValue = 'String' ;
7921+ if ( typeof value === 'boolean' )
7922+ typeOrValue = 'Boolean' ;
7923+ typeOrValue = typeOrValue + '!' ;
79147924 }
79157925 }
79167926 else {
7917- // Case 3 (user: $user)
7927+ // Case 3 or 4
79187928 typeOrValue = "$" + key ;
79197929 }
79207930 returnValue = "" + returnValue + ( first ? '' : ', ' ) + ( ( signature ? '$' : '' ) + key ) + ": " + typeOrValue ;
79217931 first = false ;
79227932 }
79237933 } ) ;
7924- if ( ! first )
7934+ if ( ! first ) {
7935+ if ( filter )
7936+ returnValue = "filter: { " + returnValue + " }" ;
79257937 returnValue = "(" + returnValue + ")" ;
7938+ }
79267939 }
79277940 return returnValue ;
79287941 } ;
0 commit comments