Sha256: 76103527bd50b2e7717cfe2a85fbb27a8f59108aafb336bffe6329df814ad399
Contents?: true
Size: 1.35 KB
Versions: 12
Compression:
Stored size: 1.35 KB
Contents
# frozen_string_literal: true require_relative '../integration' require_relative 'patcher' module Datadog module AppSec module Contrib module GraphQL # Description of GraphQL integration class Integration include Datadog::AppSec::Contrib::Integration MINIMUM_VERSION = Gem::Version.new('2.0.19') AST_NODE_CLASS_NAMES = { field: 'GraphQL::Language::Nodes::Field', directive: 'GraphQL::Language::Nodes::Directive', variable_identifier: 'GraphQL::Language::Nodes::VariableIdentifier', input_object: 'GraphQL::Language::Nodes::InputObject', }.freeze register_as :graphql, auto_patch: false def self.version Gem.loaded_specs['graphql'] && Gem.loaded_specs['graphql'].version end def self.loaded? !defined?(::GraphQL).nil? end def self.compatible? super && version >= MINIMUM_VERSION && ast_node_classes_defined? end def self.auto_instrument? true end def self.ast_node_classes_defined? AST_NODE_CLASS_NAMES.all? do |_, class_name| Object.const_defined?(class_name) end end def patcher Patcher end end end end end end
Version data entries
12 entries across 12 versions & 1 rubygems