Method: GraphQL::Schema::Field#extensions

Defined in:
lib/graphql/schema/field.rb

#extensions(new_extensions = nil) ⇒ Array<GraphQL::Schema::FieldExtension>

Read extension instances from this field, or add new classes/options to be initialized on this field. Extensions are executed in the order they are added.

Examples:

adding an extension

extensions([MyExtensionClass])

adding multiple extensions

extensions([MyExtensionClass, AnotherExtensionClass])

adding an extension with options

extensions([MyExtensionClass, { AnotherExtensionClass => { filter: true } }])

Parameters:

  • extensions (Array<Class, Hash<Class => Hash>>)

    Add extensions to this field. For hash elements, only the first key/value is used.

Returns:



412
413
414
415
416
417
418
419
420
421
422
423
424
# File 'lib/graphql/schema/field.rb', line 412

def extensions(new_extensions = nil)
  if new_extensions
    new_extensions.each do |extension_config|
      if extension_config.is_a?(Hash)
        extension_class, options = *extension_config.to_a[0]
        self.extension(extension_class, **options)
      else
        self.extension(extension_config)
      end
    end
  end
  @extensions
end