@@ -23,8 +23,10 @@ import {
2323 DirectiveUsageEnumRemovedChange ,
2424 DirectiveUsageEnumValueAddedChange ,
2525 DirectiveUsageEnumValueRemovedChange ,
26+ DirectiveUsageFieldAddedChange ,
2627 DirectiveUsageFieldDefinitionAddedChange ,
2728 DirectiveUsageFieldDefinitionRemovedChange ,
29+ DirectiveUsageFieldRemovedChange ,
2830 DirectiveUsageInputFieldDefinitionAddedChange ,
2931 DirectiveUsageInputFieldDefinitionRemovedChange ,
3032 DirectiveUsageInputObjectAddedChange ,
@@ -72,6 +74,13 @@ type KindToPayload = {
7274 input : GraphQLEnumType ;
7375 change : DirectiveUsageEnumAddedChange | DirectiveUsageEnumRemovedChange ;
7476 } ;
77+ [ Kind . FIELD ] : {
78+ input : {
79+ field : GraphQLField < any , any , any > ;
80+ parentType : GraphQLInterfaceType | GraphQLObjectType < any , any > ;
81+ } ;
82+ change : DirectiveUsageFieldAddedChange | DirectiveUsageFieldRemovedChange ;
83+ } ;
7584 [ Kind . FIELD_DEFINITION ] : {
7685 input : {
7786 field : GraphQLField < any , any , any > ;
@@ -379,6 +388,25 @@ export function directiveUsageEnumRemovedFromMeta(args: DirectiveUsageEnumRemove
379388 } as const ;
380389}
381390
391+ function buildDirectiveUsageFieldAddedMessage (
392+ args : DirectiveUsageFieldAddedChange [ 'meta' ] ,
393+ ) : string {
394+ return `Directive '${ args . addedDirectiveName } ' was added to field '${ args . typeName } .${ args . fieldName } '` ;
395+ }
396+
397+ export function directiveUsageFieldAddedFromMeta ( args : DirectiveUsageFieldAddedChange ) {
398+ return {
399+ criticality : {
400+ level : addedSpecialDirective ( args . meta . addedDirectiveName , CriticalityLevel . Dangerous ) ,
401+ reason : `Directive '${ args . meta . addedDirectiveName } ' was added to field '${ args . meta . fieldName } '` ,
402+ } ,
403+ type : ChangeType . DirectiveUsageFieldAdded ,
404+ message : buildDirectiveUsageFieldAddedMessage ( args . meta ) ,
405+ path : [ args . meta . typeName , args . meta . fieldName , args . meta . addedDirectiveName ] . join ( '.' ) ,
406+ meta : args . meta ,
407+ } as const ;
408+ }
409+
382410function buildDirectiveUsageFieldDefinitionAddedMessage (
383411 args : DirectiveUsageFieldDefinitionAddedChange [ 'meta' ] ,
384412) : string {
@@ -400,6 +428,25 @@ export function directiveUsageFieldDefinitionAddedFromMeta(
400428 } as const ;
401429}
402430
431+ function buildDirectiveUsageFieldRemovedMessage (
432+ args : DirectiveUsageFieldRemovedChange [ 'meta' ] ,
433+ ) : string {
434+ return `Directive '${ args . removedDirectiveName } ' was removed from field '${ args . typeName } .${ args . fieldName } '` ;
435+ }
436+
437+ export function directiveUsageFieldRemovedFromMeta ( args : DirectiveUsageFieldRemovedChange ) {
438+ return {
439+ criticality : {
440+ level : removedSpecialDirective ( args . meta . removedDirectiveName , CriticalityLevel . Dangerous ) ,
441+ reason : `Directive '${ args . meta . removedDirectiveName } ' was removed from field '${ args . meta . fieldName } '` ,
442+ } ,
443+ type : ChangeType . DirectiveUsageFieldRemoved ,
444+ message : buildDirectiveUsageFieldRemovedMessage ( args . meta ) ,
445+ path : [ args . meta . typeName , args . meta . fieldName , args . meta . removedDirectiveName ] . join ( '.' ) ,
446+ meta : args . meta ,
447+ } as const ;
448+ }
449+
403450function buildDirectiveUsageFieldDefinitionRemovedMessage (
404451 args : DirectiveUsageFieldDefinitionRemovedChange [ 'meta' ] ,
405452) : string {
@@ -640,6 +687,16 @@ export function directiveUsageAdded<K extends keyof KindToPayload>(
640687 } ,
641688 } ) ;
642689 }
690+ if ( isOfKind ( kind , Kind . FIELD , payload ) ) {
691+ return directiveUsageFieldAddedFromMeta ( {
692+ type : ChangeType . DirectiveUsageFieldAdded ,
693+ meta : {
694+ addedDirectiveName : directive . name . value ,
695+ fieldName : payload . field . name ,
696+ typeName : payload . parentType . name ,
697+ } ,
698+ } ) ;
699+ }
643700 if ( isOfKind ( kind , Kind . FIELD_DEFINITION , payload ) ) {
644701 return directiveUsageFieldDefinitionAddedFromMeta ( {
645702 type : ChangeType . DirectiveUsageFieldDefinitionAdded ,
@@ -757,6 +814,16 @@ export function directiveUsageRemoved<K extends keyof KindToPayload>(
757814 } ,
758815 } ) ;
759816 }
817+ if ( isOfKind ( kind , Kind . FIELD , payload ) ) {
818+ return directiveUsageFieldRemovedFromMeta ( {
819+ type : ChangeType . DirectiveUsageFieldRemoved ,
820+ meta : {
821+ removedDirectiveName : directive . name . value ,
822+ fieldName : payload . field . name ,
823+ typeName : payload . parentType . name ,
824+ } ,
825+ } ) ;
826+ }
760827 if ( isOfKind ( kind , Kind . FIELD_DEFINITION , payload ) ) {
761828 return directiveUsageFieldDefinitionRemovedFromMeta ( {
762829 type : ChangeType . DirectiveUsageFieldDefinitionRemoved ,
0 commit comments