Size: a a a

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

2020 June 20

YS

Yevhen Soldatov in Apollo — русскоговорящее сообщество
hello
источник
2020 June 21

EC

Eugene Cruz in Apollo — русскоговорящее сообщество
здоров)
источник
2020 June 23

UM

Utsr Mapper in Apollo — русскоговорящее сообщество
Здрастье
источник
2020 July 09

R

Rodion Ponomarenko in Apollo — русскоговорящее сообщество
Hi
источник
2020 July 11

AS

Azat S. in Apollo — русскоговорящее сообщество
Привет, кто подскажет, можно ли как-то выполнить запрос на получение нового токена в apollo-error-link при получении соответствующей ошибки?
источник

AS

Azat S. in Apollo — русскоговорящее сообщество
Примерно так:

const errorLink = onError(
 ({ graphQLErrors, networkError, operation, forward }) => {
   const refreshToken = () => {
     // Необходимо выполнить этот запрос в случае ошибки,
     // если токен протух
     const refreshTokenQuery = ({
       query: gql`mutation($fingerprint: String!) {
         updateToken(fingerprint: $fingerprint) {
           token
           refreshToken
         }
       }`,
       variables: {
         fingerprint,
       },
     })
   }
   const checkGraphQLErrors = unless(
     isNil,
     forEach(({ extensions: { code } }) => {
       // Если получаем ошибку UNAUTHENTICATED, вызываем
       // функцию выше
       return (
         equals('UNAUTHENTICATED', code) &&
         promiseToObservable(refreshToken()).flatMap(() => forward(operation))
       )
     }),
   )
   checkGraphQLErrors(graphQLErrors)
 },
)
источник
2020 July 14

MP

Mike Podgorniy in Apollo — русскоговорящее сообщество
получилось? я тоже задавался этим вопросом, решилось так: делал свой statefull линк в который инжектил клиент, он отправлял запросы в фоне на обновление токенов + линк переиспользуется в 2х клиентах и шейрит между ними токены @azat_io
источник
2020 July 25

AS

Azat S. in Apollo — русскоговорящее сообщество
Mike Podgorniy
получилось? я тоже задавался этим вопросом, решилось так: делал свой statefull линк в который инжектил клиент, он отправлял запросы в фоне на обновление токенов + линк переиспользуется в 2х клиентах и шейрит между ними токены @azat_io
Я делал по-дурацки пока что, просто перезапрашивал токен к тому моменту, когда сессия заканчивалась, просто устанавливая таймаут
источник

MP

Mike Podgorniy in Apollo — русскоговорящее сообщество
У меня тоже самое только немного красивее))) @azat_io
источник
2020 July 26

EC

Eugene Cruz in Apollo — русскоговорящее сообщество
О каком токене идет речь, господа?
источник

AS

Azat S. in Apollo — русскоговорящее сообщество
Eugene Cruz
О каком токене идет речь, господа?
Рефреш
источник

ЕД

Егор Денисов... in Apollo — русскоговорящее сообщество
Всем привет!
Не подскажите какой верный способ для передачи локальных данных через компоненты (local state) в react + apollo/client@3 ?

только reactive vars или еще есть способы?
источник

EC

Eugene Cruz in Apollo — русскоговорящее сообщество
Azat S.
Рефреш
import { onError } from 'apollo-link-error'; import promiseToObservable from './promiseToObservable'; export default (refreshToken: Function) => onError(({ forward, graphQLErrors, networkError = {}, operation, // response, }) => { if (networkError.message === 'UNAUTHORIZED') { // or whatever you want to check // note: await refreshToken, then call its link middleware again! return promiseToObservable(refreshToken()).flatMap(() => forward(operation)); } });


import { Observable } from 'apollo-link'; export default promise => new Observable((subscriber) => { promise.then( (value) => { if (subscriber.closed) return; subscriber.next(value); subscriber.complete(); }, err => subscriber.error(err) ); return subscriber; // this line can removed, as per next comment });
источник

EC

Eugene Cruz in Apollo — русскоговорящее сообщество
Егор Денисов
Всем привет!
Не подскажите какой верный способ для передачи локальных данных через компоненты (local state) в react + apollo/client@3 ?

только reactive vars или еще есть способы?
1.cache.writeData
2.makeVar([]) ленивый способ, апдейтится везде, если изменил значение, запрашивать кверю не нужно
3. Юзать graphql директиву в качестве переменной @export

Последние 2 больше как переменные
источник
2020 July 28

ЕД

Егор Денисов... in Apollo — русскоговорящее сообщество
Eugene Cruz
1.cache.writeData
2.makeVar([]) ленивый способ, апдейтится везде, если изменил значение, запрашивать кверю не нужно
3. Юзать graphql директиву в качестве переменной @export

Последние 2 больше как переменные
Спасибо! cache.writeData вроде выпилили в версии 3. теперь там writeQuery
источник

EC

Eugene Cruz in Apollo — русскоговорящее сообщество
Егор Денисов
Спасибо! cache.writeData вроде выпилили в версии 3. теперь там writeQuery
та не, ничего не выпиливали, ты и то и то можешь использовать. Во writeData ты пихаешь условно объект и обрабатываешь его writeQuery под капотом. WriteQuery же требует квери для валидации формы твоего объекта с данныит
источник
2020 July 29

ЕД

Егор Денисов... in Apollo — русскоговорящее сообщество
Eugene Cruz
та не, ничего не выпиливали, ты и то и то можешь использовать. Во writeData ты пихаешь условно объект и обрабатываешь его writeQuery под капотом. WriteQuery же требует квери для валидации формы твоего объекта с данныит
хм, у меня почему-то говорит что нет такого метода
источник

DK

Daniil Kuznetsov in Apollo — русскоговорящее сообщество
Егор Денисов
хм, у меня почему-то говорит что нет такого метода
А должен быть?
источник

ЕД

Егор Денисов... in Apollo — русскоговорящее сообщество
Daniil Kuznetsov
А должен быть?
в мигрэйшн гайде написано что не должно быть, но в их же туториалах, помоиму, оно встречается
источник
2020 August 07

DK

Daniil Kuznetsov in Apollo — русскоговорящее сообщество
Есть простой способ сделать так, чтобы refetch не мерджил новые данные с кэшем, а просто возвращал новые?
источник