sangria-graphql/sangria

Schema transformation

Aperta

#418 aperta il 12 nov 2018

 (4 commenti) (0 reazioni) (0 assegnatari)Scala (219 fork)batch import
featurehelp wanted

Metriche repository

Star
 (1961 stelle)
Metriche merge PR
 (Merge medio 8g 15h) (4 PR mergiate in 30 g)

Descrizione

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)))

Guida contributor