sangria-graphql/sangria

Schema transformation

Open

#418 opened on Nov 12, 2018

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

Repository metrics

Stars
 (1,961 stars)
PR merge metrics
 (Avg merge 8d 15h) (4 merged PRs in 30d)

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