sangria-graphql/sangria

Schema transformation

Open

#418 opened on Nov 12, 2018

View on GitHub
 (4 comments) (0 reactions) (0 assignees)Scala (1,961 stars) (219 forks)batch import
featurehelp wanted

Description

The idea is to provide an easy and convenient way to transform existing schema. Since all types are cross-referenced within the schema, the whole schema needs to be re-created in a similar way as in the AST materializer where it re-creates existing types with the help of the builder.

In this case a dedicated builder might be useful as a low-level implementation detail. But it also would be nice to have a high-level DSL. Here is just an idea of how it might look like:

val newSchema =
  schema
    .mapObjectType("Book", _.rename("Publication"))
    .mapOutputTypes(_.filterFileds(field ⇒ !field.tags.contains(Preview)))

Contributor guide