ReasonML Полиморфный вариант при захвате Union в GraphQL ppx
У меня проблемы с союзами в ppx, интерпретирующими полиморфные варианты.
В моем браузере с помощью
Js.log
Я нахожу предмет, похожий на
{__typename: "MultipleChoiceQuestion", id: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBaseId: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBase: {…}, choices: Array(4)}choices: (4) [{…}, {…}, {…}, {…}]
С запросом graphql, который выглядит следующим образом:
module Fields = [%graphql
{|
fragment TestFields on Test {
questions {
__typename
...on LongAnswerQuestion {
...LongAnswerQuestionFields
}
...on MultipleChoiceQuestion {
...MultipleChoiceQuestionFields
}
...on TrueFalseQuestion {
...TrueFalseQuestionFields
}
...on FillInTheBlankQuestion {
...FillInTheBlankQuestionFields
}
}
|}
];
и возвращается полиморфный вариант:
{__typename: "MultipleChoiceQuestion", id: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBaseId: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBase: {…}, choices: Array(4)}choices: (4) [{…}, {…}, {…}, {…}]
LongAnswerQuestion q
undefined
Отснято здесь:
Js.log("Question_Model obj");
Js.log(obj);
switch (obj) {
| `LongAnswerQuestion(q) =>{
Js.log("LongAnswerQuestion q");
Js.log(q);
q
|> LongAnswerQuestion.Model.objectToId
|> Schema.LongAnswerQuestion.idToString
|> q => UnionSchema.Question.LongAnswer(q)
}
| `MultipleChoiceQuestion(q) =>{
Js.log("MultipleChoiceQuestion q");
Js.log(q);
q
|> MultipleChoiceQuestion.Model.objectToId
|> Schema.MultipleChoiceQuestion.idToString
|> q => UnionSchema.Question.MultipleChoice(q)
}
...
я использую
"reason-apollo-client": "1.0.0-beta.0",
и
"@reasonml-community/graphql-ppx": "1.0.1",