Могу ли я использовать директиву для вычисления значения поля на основе другого значения поля?

У меня такая модель:

type Email {
  id: ID! @unique
  confirmed: Boolean! @default(value: "false")
  formatted: String! @unique
  raw: String!
}

Мне нужно ввести значение в нижнем регистре из поля raw и поместить его в поле formatted перед сохранением в db.

Дело в том, что у меня уже есть три варианта использования (связаться с нами, подписаться на новости, зарегистрироваться), и мне нужно будет написать один и тот же код в трех разных преобразователях.

Чтобы избежать дублирования, я подумал, что было бы неплохо сделать это как-нибудь в директиве.

Можно ли создать свою собственную директиву, которая справится с этим?

Обновление: в Prisma v1.18 это невозможно.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
1
0
226
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Основываясь на спецификации, я не думаю, что это возможно (к сожалению), потому что похоже, что вам нужно вычисленное поле

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

https://facebook.github.io/graphql/June2018/

Ответ принят как подходящий

В настоящее время это невозможно в Prisma и действительно должно быть реализовано на уровне приложений. Для этого есть открытый запрос функции, присоединяйтесь к обсуждению на GitHub и добавьте свой +1, если вас интересует эта функция.

Другие вопросы по теме