Sha256: b05c6f3cf6eff56e59eca6f3cc718183d2f4932227152c0dc4633130e8d30f18
Contents?: true
Size: 1.55 KB
Versions: 52
Compression:
Stored size: 1.55 KB
Contents
# frozen_string_literal: true require "graphql/tracing/platform_trace" module GraphQL module Tracing # This implementation forwards events to a notification handler (i.e. # ActiveSupport::Notifications or Dry::Monitor::Notifications) # with a `graphql` suffix. module NotificationsTrace # Initialize a new NotificationsTracing instance # # @param engine [#instrument(key, metadata, block)] The notifications engine to use def initialize(engine:, **rest) @notifications_engine = engine super end { "lex" => "lex.graphql", "parse" => "parse.graphql", "validate" => "validate.graphql", "analyze_multiplex" => "analyze_multiplex.graphql", "analyze_query" => "analyze_query.graphql", "execute_multiplex" => "execute_multiplex.graphql", "execute_query" => "execute_query.graphql", "execute_query_lazy" => "execute_query_lazy.graphql", "execute_field" => "execute_field.graphql", "execute_field_lazy" => "execute_field_lazy.graphql", "authorized" => "authorized.graphql", "authorized_lazy" => "authorized_lazy.graphql", "resolve_type" => "resolve_type.graphql", "resolve_type_lazy" => "resolve_type.graphql", }.each do |trace_method, platform_key| module_eval <<-RUBY, __FILE__, __LINE__ def #{trace_method}(**metadata, &blk) @notifications_engine.instrument("#{platform_key}", metadata, &blk) end RUBY end include PlatformTrace end end end
Version data entries
52 entries across 52 versions & 1 rubygems