Apollo CodeGen не может генерировать типы TS - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь сгенерировать некоторые типы TS, используя Apollo CodeGen, используя json из запроса на самоанализ.

Верх файла схемы выглядит следующим образом (дайте мне знать, если я могу предоставить другую информацию)

{
  "data": {
  "__schema": {
  ...

ошибка, которую я получаю, это

➜  continuum git:(typescript) ✗ apollo client:codegen --target typescript --localSchemaFile="./schema.json"
{ Error: Error in "Loading schema for Unnamed Project": Syntax Error: Expected Name, found }

За этим следует МНОГО выходных, которые я не могу понять. Вот немного из этого:

graphql-schema:/schema.graphql?%22%22%22Schema%20for%20types%20that%20can%20be%20active%20or%20inactive%22%22%22%0Ainterface%20ActivatedInterface%20%7B%0A%20%20%22%22%22Is%20this%20object%20enabled%3F%22%22%22%0A%20%20active%3A%20Bool!%0A%7D%0A%0A%22%22%22An%20advertisement%22%22%22%0Atype%20Ad%20implements%20CommonInterface%20%7B%0A%20%20%22%22%22Aggregate%20data%20for%20the%20campaigns%20field%22%22%22%0A%20%20_campaignStats(%0A%20%20%20%20%22%22%22Only%20live%20items%22%22%22%0A%20%20%20%20onlyLive%3A%20Bool%20%3D%20null%0A%0A%20%20%20%20%22%22%22%0A%20%20%20%20%3Cp%3EFilters%20to%20be%20applied%20to%20the%20results.%3C%2Fp%3E%0A%20%20%20%20%0A%20%20%20%20%3Cp%3EThe%20following%20%3Ccode%20class%3D%22prettyprint%22%3ECampaign%3C%2Fcode%3E%20fields%20are%20available%20for%20filtering%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cul%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ccode%20class%3D%22prettyprint%22%3EexternalId%3C%2Fcode%3E%2C%20operators%3A%0A%20%20%20%20%3Ccode%20class%3D%22prettyprint%22%3EstartsWith%3C%2Fcode%3E%2C%20%3Ccode%0A%20%20%20%20class%3D%22prettyprint%22%3EnotStartsWith%3C%2Fcode%3E%2C%20%3Ccode%0A%20%20%20%20class%3D%22prettyprint%22%3E%3D%3C%2Fcode%3E%2C%20%3Ccode%20class%3D%22prettyprint%22%3E!%3D%3C%2Fcode%3E%2C%20%3Ccode%0A%20%20%20%20class%3D%22prettyprint%22%3E%26lt%3B%26gt%3B%3C%2Fcode%3E%2C%20%3Ccode%20class%3D%22prettyprint%22%3E%26gt%3B%3C%2Fcode%3E%2C%0A%20%20%20%20%3Ccode%20class%3D%22prettyprint%22%3E%26gt%3B%3D%3C%2Fcode%3E%2C%20%3Ccode%0A%20%20%20%20class%3D%22prettyprint%22%3E%3D%26gt%3B%3C%2Fcode%3E%2C%20%3Ccode%20class%3D%22prettyprint%22%3E%26lt%3B%3C%2Fcode%3E%2C%0A%20%20%20%20%3Ccode%20class%3D%22prettyprint%22%3E%26lt%3B%3D%3C%2Fcode%3E%2C%20%3Ccode%0A%20%20%20%20class%3D%22prettyprint%22%3E%3D%26lt%3B%3C%2Fcode%3E%2C%20%3Ccode%0A%20%20%20%20class%3D%22prettyprint%22%3E%26lt%3B%3D%26gt%3B%3C%2Fcode%3E%2C%20%3Ccode%0A%20%20%20%20class%3D%22prettyprint%22%3EisNull%3C%2Fcode%3E%2C%20%3Ccode%0A%20%20%20%20class%3D%22prettyprint%22%3EisNotNull%3C%2Fcode%3E%3C%2Fli%3E

Чего не хватает в моей схеме?

1 Ответ

0 голосов
/ 08 марта 2019

Если вы получаете синтаксическую ошибку, скорее всего, потому что файл схемы искажен. Самый простой способ получить результат самоанализа для вашей конечной точки - просто запустить эту команду:

apollo service:download --endpoint=<YOUR_ENDPOINT_URL>

Это создаст файл schema.json в вашем рабочем каталоге.

В качестве примечания, для генерации определений типов вам также понадобятся запросы на стороне клиента. Вот статья , в которой более подробно рассматривается , поскольку это действительно выходит за рамки вашего первоначального вопроса. Ваша полная команда должна выглядеть примерно так:

apollo codegen:generate --localSchemaFile=schema.json --target=typescript --includes=src/**/*.ts --tagName=gql --addTypename --globalTypesFile=src/types/graphql-global-types.ts types

Вы можете оформить документы для описания всех опций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...