Как разрешить объединение типа в сшитой схеме? - PullRequest
0 голосов
/ 22 октября 2018

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

  Spaceship: {
    createdBy: {
      fragment: 'fragment SpaceShipFragment on Spaceship { createdByHumanId createdByAlienId }',
      __resolveType({ createdByHumanId, createdByAlienId }, args, context, info) {
        const delegate = {
          operation: 'query',
          args: {},
          context,
          info,
        };
        if (createdByAlienId) {
          delegate.schema = schemas.aliens;
          delegate.args._id = createdByAlienId;
          delegate.fieldName = 'alienById';
        } else if (createdByHumanId) {
          delegate.schema = schemas.humans;
          delegate.args._id = createdByHumanId;
          delegate.fieldName = 'humanById';
        }

        return info.mergeInfo.delegateToSchema(delegate);
      },
    },
  },
});

Я пробовал и с __resolveType, и с resolve, но каждый раз, когда я получаю ноль.Spaceship - это интерфейс, который реализован несколькими другими типами.Решатель не вызывается.Я не совсем уверен, что я делаю не так.Любая помощь будет высоко ценится

...