Dynamisches Erstellen eines graphql-Schemas mit Zirkelverweisen

Mit graphql-js muss ein graphql-Schema dynamisch erstellt werden, indem ein Array einiger Daten durchlaufen wird. Beispiel:

[{
    name: 'author',
    fields: [{
        field: 'name'
    }, {
        field: 'books',
        reference: 'book'
    }]
}, {
    name: 'book',
    fields: [{
        field: 'title'
    }, {
        field: 'author',
        reference: 'author'
    }]
}]

Das Problem sind Zirkelverweise. Wenn ich AuthorType erstelle, muss BookType bereits erstellt sein und umgekehrt.

as resultierende Schema sollte wie folgt aussehen:

type Author : Object {  
  id: ID!
  name: String,
  books: [Book]
}

type Book : Object {  
  id: ID!
  title: String
  author: Author
}

Wie kann ich das lösen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage