Keystone JS Перехват поля 'resolInput': возврат 'resolvedData' из перехватчика поля приводит к ошибке приведения GraphQL - PullRequest
0 голосов
/ 10 марта 2020

Редактировать: я полагаю, что ответ таков: один не возвращает весь объект resolvedData, а вместо этого поле для того объекта, в котором вы находитесь. Таким образом, в в приведенном ниже случае можно вернуть resolvedData.text (или resolvedData.title). Я считаю, что документы могут быть улучшены, так как может показаться, что возвращается весь объект resolvedData.


Я пытаюсь изменить данные при сохранении определенного поля в Keystone JS 5 resolveInput ловушка поля кажется хорошим способом сделать это. Это пример, приведенный в документах выше:

const resolveInput = ({
  operation,
  existingItem,
  originalInput,
  resolvedData,
  context,
  actions,
}) => {
  // Input resolution logic
  // Object returned is used in place of resolvedData
  return resolvedData;
};

Возвращением resolInput может быть Promise или Object. Он должен разрешаться в той же структуре, что и resolvedData. Результат передается следующей функции в порядке выполнения.

Таким образом, определение поля в моем списке:

text: {
                type: Wysiwyg,
                hooks: {
                    async resolveInput({ originalInput,resolvedData }) {
                        console.log('resolvedData');
                        console.log(resolvedData);
                        return resolvedData;
                    }
                }

, и для начала я просто возвращает переданный аргумент resolvedData, который, согласно документам, равен

resolvedData    Object  The data received by the GraphQL mutation plus defaults values

Однако каждый раз я получаю следующую ошибку

GraphQLError
Cast to string failed for value "{ text: '<p><img src="static/blop.jpg" alt="" width="580" height="388" /><img src="static/blop.jpg" alt="" /></p>' }" at path "text"

Я не уверен, что Проблема в том, или как ее решить - я просто возвращаю те же данные, которые были переданы. Когда я удаляю хук, все работает нормально. Любая помощь приветствуется!

...