require "graphql" require "graphql-preview/version" require "graphql-preview/schema_modification" require "graphql-preview/mask" require "graphql-preview/member_from_path" require "graphql-preview/extensions/enabled_previews" module GraphQLPreview def self.visible?(member, context:) return true unless member.respond_to?(:metadata) return true unless member.metadata[:preview_toggled_by] unless context.key?(:schema_previews) raise ArgumentError, "[GraphQLPreview] `:schema_previews` was not provided to the `context`" end context[:schema_previews].include?(member.metadata[:preview_toggled_by].toggled_by) end end module GraphQL Schema.class_eval do # To support `graphql-ruby`'s `.define` based API include GraphQLPreview::Extensions::EnabledPreviews accepts_definitions \ enabled_previews: -> (schema, previews = nil) { schema.enabled_previews(previews) } # To support `graphql-ruby`'s class-based API extend GraphQLPreview::Extensions::EnabledPreviews end end