Как определить перечисления для ключевых значений в GraphQL - PullRequest
0 голосов
/ 04 июня 2019

Как определить ключи перечислений в схеме GraphQL? Ответ, который я ожидаю, выглядит ниже

 businessByState: { 
   MO: ["VALUE1", "VALUE2"],
   CA: ["VALUE1", "VALUE3", "VALUE4]
 }

Я знаю, что могу определить enum для значений для состояний, но все еще задаюсь вопросом, как я могу определить enum, чтобы ключевые значения были только двухбуквенными сокращениями состояний?

1 Ответ

1 голос
/ 04 июня 2019

В GraphQL каждое поле типа объекта должно быть явно определено. Например:

type BusinessByState {
  AL: [String!]!
  AK: [String!]!
  AZ: [String!]!
  # and so on...
}

Нет синтаксиса для определения нескольких полей одного и того же типа на основе некоторого ввода, например существующего перечисления.

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

const states = ['AL', 'AK', 'AZ', /** and so on **/]
const typeDefs = `
  enum STATES {
    ${states.join('\n')}
  }

  type BusinessByState {
    ${states.map(state => `${state}: [String!]!`).join('\n')}
  }
`
...