Мираж, требующий массива для заполнения вложенных данных

#graphql #mirage

Вопрос:

Я настраиваю внешний макет сервера graphql, используя mirage. У меня возникла странная проблема, из-за которой я не могу заполнить базу данных вложенными данными, если они не находятся в массиве.

Моя желаемая схема выглядит следующим образом:

 type PersonId {
  id_: String!
}

type Name {
  first_name: String
  last_name: String
  middle_name: String
}

type Person {
  id: PersonId!
  name: Name!
}
 

Каждый человек состоит из объекта идентификатора и объекта имени.

Я попробовал несколько различных методов для заполнения своей базы данных

     seeds(server) {
      const name = server.schema.create('Name', { first_name: 'Joe' });
      server.schema.create('Person', {
        name: {name},
      });
    },
 

Я также пытался

     seeds(server) {
      server.schema.create('Person', {
        name: {first_name: 'Joe'},
      });
    },
 

Если я изменю свою схему так, чтобы поле имени в Person было массивом

 type Person {
  id: PersonId!
  name: [Name!]
}
 

Я могу заполнить свою базу данных с помощью:

     seeds(server) {
      const name = server.schema.create('Name', { first_name: 'Joe' });
      server.schema.create('Person', {
        name: [name],
      });
    },
 

Однако это не та схема, которая вам нужна. Я действительно застрял, пытаясь понять, почему я не могу заполнить свою базу данных объектом Name.