com.mediative.sangria.codegen.sbt

SangriaSchemagenPlugin

object SangriaSchemagenPlugin extends AutoPlugin

Generate GraphQL schema file from a Sangria schema instance.

Usage

This plugin must be explicitly enabled. To enable it add the following line to your .sbt file:

enablePlugins(SangriaSchemagenPlugin)

In addition, it is required to configure sangriaSchemagenSnippet with a snippet of Scala code providing access to your sangria.schema.Schema[_, _].

See the example project.

Using with SangriaCodegenPlugin

To use this plugin to generate a schema for use with SangriaCodegenPlugin they must be configured in separate projects. For example, SangriaSchemagenPlugin could be enabled in the server project which defines the Sangria schema, and SangriaCodegenPlugin will be enabled in the client project which consumes the GraphQL services.

See the example project.

Implementation Details

The plugins introduces a parallel build scope named sangria-schemagen and uses it for generating a program for executing the schema introspection code defined in sangriaSchemagenSnippet. The build scope depends on the normal compile scope so schema classes are available when running the program. Generate code can be found in target/scala-2.x/src_managed/sangria-schemagen and compile artifacts can be found in target/scala-2.x/sangria-schemagen-classes.

Configuration

Keys are defined in SangriaSchemagenPlugin.autoImport.

Example:
  1. sangriaSchemagenSnippet in Compile := Some("com.example.schema.GraphqlSchema")
    sangriaSchemagenSchema in Compile := (resourceDirectory in Compile).value / "schema.graphql"
Linear Supertypes
AutoPlugin, PluginsFunctions, Basic, Plugins, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. SangriaSchemagenPlugin
  2. AutoPlugin
  3. PluginsFunctions
  4. Basic
  5. Plugins
  6. AnyRef
  7. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def &&(o: Basic): Plugins

    Definition Classes
    Basic → Plugins
  5. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  6. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  7. def allRequirements: PluginTrigger

    Definition Classes
    PluginsFunctions
  8. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  9. object autoImport

  10. def buildSettings: Seq[sbt.Def.Setting[_]]

    Definition Classes
    AutoPlugin
  11. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def derivedProjects(proj: ProjectDefinition[_]): Seq[Project]

    Definition Classes
    AutoPlugin
  13. def empty: Plugins

    Definition Classes
    PluginsFunctions
  14. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  16. def extraProjects: Seq[Project]

    Definition Classes
    AutoPlugin
  17. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  18. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  19. def globalSettings: Seq[sbt.Def.Setting[_]]

    Definition Classes
    AutoPlugin
  20. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  21. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  22. val label: String

    Definition Classes
    AutoPlugin
  23. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  24. def noTrigger: PluginTrigger

    Definition Classes
    PluginsFunctions
  25. final def notify(): Unit

    Definition Classes
    AnyRef
  26. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  27. def projectConfigurations: Seq[Configuration]

    Definition Classes
    AutoPlugin
  28. def projectSettings: Seq[Setting[_]]

    Definition Classes
    SangriaSchemagenPlugin → AutoPlugin
  29. def requires: JvmPlugin.type

    Definition Classes
    SangriaSchemagenPlugin → AutoPlugin
  30. def sangriaSchemagenDefaultSettings: Seq[Setting[_]]

  31. def sangriaSchemagenScopedSettings(introspection: Configuration, runtime: Configuration): Seq[Setting[_]]

  32. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  33. def toString(): String

    Definition Classes
    AutoPlugin → AnyRef → Any
  34. def trigger: PluginTrigger

    Definition Classes
    AutoPlugin
  35. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  37. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AutoPlugin

Inherited from PluginsFunctions

Inherited from Basic

Inherited from Plugins

Inherited from AnyRef

Inherited from Any

Ungrouped