@@ -737,7 +737,10 @@ def resolve(object, args, query_ctx)
737737
738738 inner_object = obj . object
739739
740+ tracker = query_ctx . namespace ( :shopify ) [ :default_resolver_tracker ]
741+
740742 if !NOT_CONFIGURED . equal? ( @hash_key )
743+ tracker &.track ( self , :hash_key )
741744 hash_value = if inner_object . is_a? ( Hash )
742745 inner_object . key? ( @hash_key ) ? inner_object [ @hash_key ] : inner_object [ @hash_key_str ]
743746 elsif inner_object . respond_to? ( :[] )
@@ -751,6 +754,7 @@ def resolve(object, args, query_ctx)
751754 hash_value || ( @fallback_value != NOT_CONFIGURED ? @fallback_value : nil )
752755 end
753756 elsif obj . respond_to? ( resolver_method )
757+ tracker &.track ( self , :resolver_method )
754758 method_to_call = resolver_method
755759 method_receiver = obj
756760 # Call the method with kwargs, if there are any
@@ -761,17 +765,22 @@ def resolve(object, args, query_ctx)
761765 end
762766 elsif inner_object . is_a? ( Hash )
763767 if @dig_keys
768+ tracker &.track ( self , :hash_dig_keys )
764769 inner_object . dig ( *@dig_keys )
765770 elsif inner_object . key? ( @method_sym )
771+ tracker &.track ( self , :hash_method_sym )
766772 inner_object [ @method_sym ]
767773 elsif inner_object . key? ( @method_str ) || !inner_object . default_proc . nil?
774+ tracker &.track ( self , :hash_method_str )
768775 inner_object [ @method_str ]
769776 elsif @fallback_value != NOT_CONFIGURED
777+ tracker &.track ( self , :hash_fallback )
770778 @fallback_value
771779 else
772780 nil
773781 end
774782 elsif inner_object . respond_to? ( @method_sym )
783+ tracker &.track ( self , :send_method_sym )
775784 method_to_call = @method_sym
776785 method_receiver = obj . object
777786 if !ruby_kwargs . empty?
@@ -780,6 +789,7 @@ def resolve(object, args, query_ctx)
780789 inner_object . public_send ( @method_sym )
781790 end
782791 elsif @fallback_value != NOT_CONFIGURED
792+ tracker &.track ( self , :fallback )
783793 @fallback_value
784794 else
785795 raise <<-ERR
0 commit comments