Обеспечить соблюдение схемы на GraphiQL - PullRequest
1 голос
/ 11 июля 2020

Как обеспечить соблюдение схемы GraphiQL, но обнулить поля, которые не существуют

Для обеспечения контекста у меня есть этот интерфейс Typescript

interface Features {
  enabled: boolean;
  limits?: Record<string, number>;
  capabilities?: string;
}

В Gatsby я пытаюсь запросить API, но с выводом типа Гэтсби он не учитывает поля ограничений и возможностей, поскольку они, возможно, не определены.

Я пытаюсь использовать createSchemaCustomization для принудительного применения полей.

Ближайшее, что я получил, это

exports.createSchemaCustomization = ({ actions }) => {
  const { createTypes } = actions;

  const typedefs = `
    interface Limits {
      days: Int
    }

    interface Feature {
      enabled: Boolean
      limits: Limits
      capabilities: String
    }

    type Performance implements TierFeature

  `
  createTypes(typeDefs)
}

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

...