Size: a a a

GraphQL — русскоговорящее сообщество

2019 February 07

e

egoarka in GraphQL — русскоговорящее сообщество
нафига только эти директивы начали завозить, ну я вот вижу, что они прижились только к призме

хотя теперь они сами говорят, ненене, не надо так, давайте теперь не будем schema-first*, а будем sdl-first (upd. наврал, обновил сообщение) и тогда нафик там эти директивы при таком подходе будут не нужны
источник

e

egoarka in GraphQL — русскоговорящее сообщество
мде
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
akaSybe
но это касается только реализации в graphql.js?
ага, в других языках смотреть надо. скорее всего также
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
довольно странно звучит, потому что когда приходит запрос  на графкл, он выполняется в три этапа: парсинг, валидация, выполнение
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
после парсинга уже есть АСТ дерево
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
не думаю, что достать информацию из АСТ дерева, есть директива на поле или нет, дорогостоящая операция
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
egoarka
нафига только эти директивы начали завозить, ну я вот вижу, что они прижились только к призме

хотя теперь они сами говорят, ненене, не надо так, давайте теперь не будем schema-first*, а будем sdl-first (upd. наврал, обновил сообщение) и тогда нафик там эти директивы при таком подходе будут не нужны
да они в статье (https://www.prisma.io/blog/the-problems-of-schema-first-graphql-development-x1mn4cb0tyl3) сильно лукавят собаки

sdl они сами и придумали - by Johannes Schickling
а спирают на аполловцев

я с Джоханесом еще год назад спорил, что их подход слабый и неправильный для больших систем

они про graphql-compose прекрасно знают, и знают что он code-first schema builder, но вот его не упоминают (т.к. видимо сейчас пытаются скопировать подход – дай бог). Либо что-то новое суперовское придумывают (что вряд ли).
источник

e

egoarka in GraphQL — русскоговорящее сообщество
🤔
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
akaSybe
не думаю, что достать информацию из АСТ дерева, есть директива на поле или нет, дорогостоящая операция
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
const AuthorType = new GraphQLObjectType({
 name: 'Author',
 description: 'Author data with related data',
 fields: () => ({
   id: { type: GraphQLInt },
   name: {
     type: GraphQLString,
     resolve: (source, args, context, info) => {
       if (info.fieldNodes?.[0].directives?.[0]?.name?.value === 'uppercase') {
         return source.name.toUpperCase();
       }
       return source.name;
     },
   },
 }),
});
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
это не удобно, согласен
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
но это же очень быстрые операции?
источник

e

egoarka in GraphQL — русскоговорящее сообщество
Pavel @nodkz
да они в статье (https://www.prisma.io/blog/the-problems-of-schema-first-graphql-development-x1mn4cb0tyl3) сильно лукавят собаки

sdl они сами и придумали - by Johannes Schickling
а спирают на аполловцев

я с Джоханесом еще год назад спорил, что их подход слабый и неправильный для больших систем

они про graphql-compose прекрасно знают, и знают что он code-first schema builder, но вот его не упоминают (т.к. видимо сейчас пытаются скопировать подход – дай бог). Либо что-то новое суперовское придумывают (что вряд ли).
если скопируют, то так преподнесут..., будто бы сам бог им послал создание схем с рефлексией и прочими плюшками ну и стопудняк декораторов накидают
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Вот как думаешь насколько быстро будет работать такой запрос
query {
 user {
   name @uppercase
   lastname @uppercase
}


для всех полей в рантайме на которых врапнули резолвер для работы с директивами с такой кривой проверкой  info.fieldNodes?.[0].directives?.[0]?.name?.value === 'uppercase'
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
?. надо проверить поле на непустоту
[0] - надо циклом пробежаться по всем возможным директивам
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
а это код который ты сам написал или это генерится чем-то?
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
?. это optional chaining, есть спека в тс39. Бабелем транспилится, тайпскрипт пока не научили.
источник

e

egoarka in GraphQL — русскоговорящее сообщество
попахивает флоу))
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
Pavel @nodkz
?. это optional chaining, есть спека в тс39. Бабелем транспилится, тайпскрипт пока не научили.
не, я про код выше, где-ты достаешь директиву из поля info
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
а [0] это просто чтоб пример покороче был ))) и пример тупокодинга, когда считывается только первая директива
источник