<p>рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рддреНрд░реБрдЯрд┐: 'рдЕрдкреЛрд▓реЛрд▓рд┐рдВрдХ' рдЯрд╛рдЗрдк рдХрд░реЗрдВ 'рдЕрдкреЛрд▓реЛрд▓рд┐рдВрдХ' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдирд╛рдо рдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдореМрдЬреВрдж рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдорд╛рд░реНрдЪ 2018  ┬╖  27рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: apollographql/apollo-link

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рддреНрд░реБрдЯрд┐ onError рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд ApolloLink рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-http рдФрд░ рдЕрдкреЛрд▓реЛ-рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ ApolloLink рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-* рдкреИрдХреЗрдЬ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рджреЛ рдЕрд╕рдВрдЧрдд ApolloLink рдкреНрд░рдХрд╛рд░ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВред

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдЪрд┐рд╣реНрдирд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪрд┐рд╣реНрдирд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдкрд░ as any рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдПрдХ _рд╕рд░рд▓_ рдкреНрд░рдЬрдирди

import { InMemoryCache } from 'apollo-cache-inmemory'
import ApolloClient from 'apollo-client'
import { ApolloLink } from 'apollo-link'
import { onError } from 'apollo-link-error'
import { createHttpLink } from 'apollo-link-http'

const httpLink = createHttpLink({ uri: apiUrl })

const authLink = new ApolloLink((operation, forward) => {
  const token = getToken()
  if (token) {
    operation.setContext({
      headers: {
        Authorization: `Bearer ${token}`,
      },
    })
  }
  return forward(operation)
})

const logLink = onError(error => console.error('Apollo Error', error))  // as any

const link = logLink.concat(authLink.concat(httpLink))  // as any

/*
TS2345: Argument of type 'ApolloLink' is not assignable to parameter of type 'ApolloLink | RequestHandler'.
  Type 'ApolloLink' is not assignable to type 'RequestHandler'.
    Type 'ApolloLink' provides no match for the signature '(operation: Operation, forward?: NextLink): Observable<FetchResult<Record<string, any>, Record<string, any>>>'.
*/

export const graphql = new ApolloClient({
  cache: new InMemoryCache(),
  link,
})

/*
TS2345: Argument of type '{ cache: InMemoryCache; link: ApolloLink; }' is not assignable to parameter of type 'ApolloClientOptions<NormalizedCacheObject>'.
  Types of property 'link' are incompatible.
    Type 'ApolloLink' is not assignable to type 'ApolloLink'. Two different types with this name exist, but they are unrelated.
      Types of property 'split' are incompatible.
        Type '(test: (op: Operation) => boolean, left: ApolloLink | RequestHandler, right?: ApolloLink | Reques...' is not assignable to type '(test: (op: Operation) => boolean, left: ApolloLink | RequestHandler, right?: ApolloLink | Reques...'. Two different types with this name exist, but they are unrelated.
          Types of parameters 'left' and 'left' are incompatible.
            Type 'ApolloLink | RequestHandler' is not assignable to type 'ApolloLink | RequestHandler'. Two different types with this name exist, but they are unrelated.
              Type 'ApolloLink' is not assignable to type 'ApolloLink | RequestHandler'.
                Type 'ApolloLink' is not assignable to type 'RequestHandler'.

*/

рдЕрдВрдХ рд▓реЗрдмрд▓

  • [x] рд╣реИ-рдкреНрд░рдЬрдирди
  • [ ] рд╡рд┐рд╢реЗрд╖рддрд╛
  • [] рдЕрд╡рд░реБрджреНрдз
  • [] рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдЕрдВрдХ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред

рд╕рднреА 27 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрд░рд╛ рднреА рдпрд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИ...

@iki рджрд┐рд▓рдЪрд╕реНрдк, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдПрд░рд░ рдФрд░ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдПрдЪрдЯреАрдЯреАрдкреА рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ? рдпрджрд┐ рдЖрдк https://github.com/evans/apollo-link-reproductions/tree/538 рдореЗрдВ 'npm рд░рди рдХрдВрдкрд╛рдЗрд▓' рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджрд┐рдЦрддреАред рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ ApolloLink рдХреА рдмрддрдЦ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдЬрдирди рднрдВрдбрд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдХреНрд▓реЛрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рд╣рдореЗрдВ TS рдХрд╛ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ?

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ apollo-link рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ package.json рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдареАрдХ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ:

{
    "dependencies": {
       "dependencies": {
        "apollo-cache-inmemory": "^1.1.12",
        "apollo-client": "^2.2.8",
        "apollo-codegen": "^0.19.0",
        "apollo-link": "^1.2.1",
        "apollo-link-batch-http": "^1.2.1",
        "apollo-link-http": "^1.5.3",
        "apollo-link-retry": "^2.2.2"
    },
    "resolutions": {
        "apollo-link": "1.2.1"
    }
}

рдореБрдЭреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП graphql рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рддрд┐ рдореМрдЬреВрдж рд╣реИред

рдпрд╣ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред #599 рджреЗрдЦреЗрдВ, рдЬреЛ #600 рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рддреНрд░реБрдЯрд┐@1.0.10 . рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛

@evans рдореИрдВ рдЕрднреА рднреА рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рддреНрд░реБрдЯрд┐@1.0.10 рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рддреЗ рд╣реИрдВред рдпрд╣ рдореБрдЭреЗ рдЕрдиреНрдп рдЕрдкреЛрд▓реЛ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдБ рд╡рд╣реА, 1.0.10 рдкреНрд░рдХрд╛рд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ

@ravishivt @sccdGyan рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ! рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛ред рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдПрд░рд░@1.1.0 . рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдореБрдЭреЗ рдПрдХ рдРрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:

рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ:

"dependencies": {
    "@apollo/client": "^3.0.0-beta.19",
    "apollo-link-ws": "^1.0.19",
    "graphql": "^14.5.8",
    "subscriptions-transport-ws": "^0.9.16",
    ...
  },

рдХреЛрдб:

import {
    ApolloClient,
    InMemoryCache,
    HttpLink,
    ApolloLink,
    Operation,
    NextLink,
    split,
    getMainDefinition
} from '@apollo/client'
import { WebSocketLink } from 'apollo-link-ws';

const wsLink = new WebSocketLink({
    uri: config.backendWSApiUrl,
    options: {
        reconnect: true
    }
})

const httpLink = new HttpLink({
    uri: config.backendHttpApiUrl
})

const link = split(
    // split based on operation type
    ({ query }) => {
        const definition = getMainDefinition(query);
        return (
            definition.kind === 'OperationDefinition' &&
            definition.operation === 'subscription'
        );
    },
    wsLink,
    httpLink,
);


рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рддреНрд░реБрдЯрд┐:

Argument of type 'WebSocketLink' is not assignable to parameter of type 'ApolloLink | RequestHandler'.
  Type 'WebSocketLink' is missing the following properties from type 'ApolloLink': onError, setOnErrorts(2345)

3.0 рдмреАрдЯрд╛ рдХреЗ рд╕рд╛рде @mnesarco рдХреЗ рд╕рдорд╛рди

рдореИрдВ рдЙрд╕реА рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
"@apollo/client": "~3.0.0-beta.29 рдФрд░ "@apollo/link-error": "^2.0.0-beta.3",
ApolloLink.from([errorLink, httpLink])

@smeevil рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдлрд┐рдХреНрд╕ рдорд┐рд▓рд╛, рдореИрдВ рднреА рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдирд╣реАрдВ

рдХреНрдпрд╛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдирд╡реАрдирддрдо рдЕрдкреЛрд▓реЛ рдХреНрд▓рд╛рдЗрдВрдЯ 3.0.0 рдмреАрдЯрд╛ 32 рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ

рдореЗрд░реЗ рд▓рд┐рдП рдЕрдм рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд╣реИ

"@apollo/client": "^3.0.0-beta.37",
"@apollo/link-context": "^2.0.0-beta.3",
"@apollo/link-error": "^2.0.0-beta.3",
"@apollo/link-retry": "^2.0.0-beta.3",
"@apollo/link-ws": "^2.0.0-beta.3",`

рдореЗрд░реЗ рд▓рд┐рдП рдЕрдм рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд╣реИ

"@apollo/client": "^3.0.0-beta.37",
"@apollo/link-context": "^2.0.0-beta.3",
"@apollo/link-error": "^2.0.0-beta.3",
"@apollo/link-retry": "^2.0.0-beta.3",
"@apollo/link-ws": "^2.0.0-beta.3",`

рдзрдиреНрдпрд╡рд╛рдж! @Apollo/client рдХреЛ 3.0.0-beta.39 рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред

рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП @apollo/link-error рдХреЗ рдмрдЬрд╛рдп apollo-link-error рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдореИрдВ рдЕрдкреЛрд▓реЛ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрдкреЛрд▓реЛ рд╕рд░реНрд╡рд░ рдЧрд╛рдЗрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ рдорд┐рд▓реА рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╕реАрдзреЗ рдЕрдкреЛрд▓реЛ рд▓рд┐рдВрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ apollo-boost рд╕реЗ ApolloClient рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддреА рд╣реИред рдореЗрд░реЗ рдХреЛрдб рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

import ApolloClient from 'apollo-boost';

const client = new ApolloClient({
  uri: "/api/graphql",
});

const App = ({ Component, pageProps }: AppProps) => {
  return (
    <ApolloProvider client={client}>
      <Component {...pageProps} />
    </ApolloProvider>
  )
}

рдореИрдВ рдЗрд╕реЗ @apollo/client рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдФрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреБрди: рд╕рдХреНрд░рд┐рдп рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:

import { ApolloClient, HttpLink, InMemoryStore } from '@apollo/client';

const client = new ApolloClient({
  cache: new InMemoryStore(),
  link: new HttpLink({ uri: "/api/graphql" })
});

const App = ({ Component, pageProps }: AppProps) => {
  return (
    <ApolloProvider client={client}>
      <Component {...pageProps} />
    </ApolloProvider>
  )
}

рдзрдиреНрдпрд╡рд╛рдж! @Apollo/client рдХреЛ 3.0.0-beta.39 рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг @apollo/client рджреНрд╡рд╛рд░рд╛ 3.0.0-beta.41 рдкрд░ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╢реБрдХреНрд░ рд╣реИ!

рдореБрдЭреЗ рдЖрдЬ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА рдЬрдм рдореИрдВрдиреЗ рдирдпрд╛ 3.0.0-рдмреАрдЯрд╛.43 рдЖрдЬрд╝рдорд╛рдпрд╛ред
рд╣рд▓ рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдХрд┐ рдХреИрд╕реЗ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╛ рддреЛ package.json "resolution" рдлрд╝реАрд▓реНрдб рдХреЛ beta.43 рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдпрд╛, рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, yarn.lock рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдкреБрдирдГ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ред

3.0.0-рдмреАрдЯрд╛.44 рдкрд░ред рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди рдореЗрдВ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдпрд╛рд░реНрди.рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рди рддреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдФрд░ рд▓рд┐рдВрдХ-рддреНрд░реБрдЯрд┐ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛:
"@ рдЕрдкреЛрд▓реЛ/рдХреНрд▓рд╛рдЗрдВрдЯ": "^3.0.0-рдмреАрдЯрд╛.49", "@ рдЕрдкреЛрд▓реЛ/рд▓рд┐рдВрдХ-рдПрд░рд░": "^2.0.0-рдмреАрдЯрд╛.3"

рдореИрдВ рдЪрд╛рд▓реВ рд╣реВрдБ

    "@apollo/client": "^3.0.0-beta.50",
    "@apollo/link-context": "^2.0.0-beta.3",

рдФрд░ рдЕрднреА рднреА рдпрд╣ рдореБрджреНрджрд╛ рд╣реИред

рдореИрдВ рдЪрд╛рд▓реВ рд╣реВрдБ

    "@apollo/client": "^3.0.0-beta.50",

    "@apollo/link-context": "^2.0.0-beta.3",

рдФрд░ рдЕрднреА рднреА рдпрд╣ рдореБрджреНрджрд╛ рд╣реИред

рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, package.json рдХреА рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ _all_ рдЪреАрдЬреЗрдВ рдЕрдкреЛрд▓реЛ 3.0 рд╣реИрдВ, рдлрд┐рд░ рдпрд╛рд░реНрди рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдпрд╛рд░реНрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рдзрдиреНрдпрд╡рд╛рдж @onpaws ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп (рджреЗрд╡) рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рдпрдВ "рдкреБрд░рд╛рдиреА" рдЕрдкреЛрд▓реЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП graphql-codegen ), рдФрд░ рдореИрдВ рдЙрдирдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдкреБрд░рд╛рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ _import_ рдирд╣реАрдВ рдХрд░рддрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреНрд░рдорд┐рдд рдХреНрдпреЛрдВ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ "рдореИрдВ" рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИ рдЕрдЧрд░ рдореИрдВ рд╕рд┐рд░реНрдл as any рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рд▓рд╛, рднрд▓реЗ рд╣реА рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд▓рдЧ рд░рд╣рд╛ рд╣реЛ:

export const client = new ApolloClient({
  cache: new InMemoryCache(),
  link: authenLink.concat(httpLink as any) as any
});
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

maktouch picture maktouch  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

MoonTahoe picture MoonTahoe  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Nickersoft picture Nickersoft  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ChenRoth picture ChenRoth  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tim-soft picture tim-soft  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ