@@ -237,12 +237,14 @@ export class FilterFactory {
237
237
comparisonValue,
238
238
operator,
239
239
attachedTo,
240
+ caseInsensitive,
240
241
} : {
241
242
attribute : AttributeAdapter ;
242
243
relationship ?: RelationshipAdapter ;
243
244
comparisonValue : GraphQLWhereArg ;
244
245
operator : FilterOperator | undefined ;
245
246
attachedTo ?: "node" | "relationship" ;
247
+ caseInsensitive ?: boolean ;
246
248
} ) : Filter | Filter [ ] {
247
249
if ( attribute . annotations . cypher ) {
248
250
return this . createCypherFilter ( {
@@ -294,6 +296,7 @@ export class FilterFactory {
294
296
comparisonValue,
295
297
operator,
296
298
attachedTo,
299
+ caseInsensitive,
297
300
} ) ;
298
301
}
299
302
@@ -560,10 +563,11 @@ export class FilterFactory {
560
563
entity : ConcreteEntityAdapter | RelationshipAdapter | InterfaceEntityAdapter ,
561
564
fieldName : string ,
562
565
value : Record < string , any > ,
563
- relationship ?: RelationshipAdapter
566
+ relationship ?: RelationshipAdapter ,
567
+ caseInsensitive ?: boolean
564
568
) : Filter | Filter [ ] {
565
569
const genericFilters = Object . entries ( value ) . flatMap ( ( filterInput ) => {
566
- return this . parseGenericFilter ( entity , fieldName , filterInput , relationship ) ;
570
+ return this . parseGenericFilter ( entity , fieldName , filterInput , relationship , caseInsensitive ) ;
567
571
} ) ;
568
572
return this . wrapMultipleFiltersInLogical ( genericFilters ) ;
569
573
}
@@ -572,12 +576,13 @@ export class FilterFactory {
572
576
entity : ConcreteEntityAdapter | RelationshipAdapter | InterfaceEntityAdapter ,
573
577
fieldName : string ,
574
578
filterInput : [ string , any ] ,
575
- relationship ?: RelationshipAdapter
579
+ relationship ?: RelationshipAdapter ,
580
+ caseInsensitive ?: boolean
576
581
) : Filter | Filter [ ] {
577
582
const [ rawOperator , value ] = filterInput ;
578
583
if ( isLogicalOperator ( rawOperator ) ) {
579
584
const nestedFilters = asArray ( value ) . flatMap ( ( nestedWhere ) => {
580
- return this . parseGenericFilter ( entity , fieldName , nestedWhere , relationship ) ;
585
+ return this . parseGenericFilter ( entity , fieldName , nestedWhere , relationship , caseInsensitive ) ;
581
586
} ) ;
582
587
return new LogicalFilter ( {
583
588
operation : rawOperator ,
@@ -591,6 +596,9 @@ export class FilterFactory {
591
596
return this . parseGenericFilters ( entity , fieldName , desugaredInput , relationship ) ;
592
597
}
593
598
599
+ if ( rawOperator === "caseInsensitive" ) {
600
+ return this . parseGenericFilters ( entity , fieldName , value , relationship , true ) ;
601
+ }
594
602
const operator = this . parseGenericOperator ( rawOperator ) ;
595
603
596
604
const attribute = entity . findAttribute ( fieldName ) ;
@@ -611,6 +619,7 @@ export class FilterFactory {
611
619
operator,
612
620
attachedTo,
613
621
relationship,
622
+ caseInsensitive,
614
623
} ) ;
615
624
return this . wrapMultipleFiltersInLogical ( asArray ( filters ) ) ;
616
625
}
0 commit comments