Estoy tratando de usar BatchHttpLink para procesar por lotes las solicitudes de apollo en una aplicación nextjs usando la siguiente configuración:
import fetch from 'isomorphic-unfetch'; import { ApolloProvider, ApolloClient, ApolloLink, from } from '@apollo/client'; import { onError } from '@apollo/client/link/error'; import { BatchHttpLink } from '@apollo/client/link/batch-http'; const batchHttpLink = new BatchHttpLink({ uri: process.env.GRAPHQL_URL, batchMax: 5, batchInterval: 20, credentials: 'same-origin', fetch }); /** * to parse batch call response * See more https://spectrum.chat/apollo/apollo-client/batchhttplink-not-working-with-usequery-react-hooks~3eeb6635-c5a8-4b8a-a2fd-3b7fbebc5816 */ const parseBatchResponseMiddleware = new ApolloLink((operation, forward) => forward(operation).map((data: any) => data.payload) ); const errorLink = onError(({ graphQLErrors, networkError, forward, operation }) => { if (graphQLErrors) { console.warn(graphQLErrors); } if (networkError) { console.warn(networkError); } forward(operation); }); return new ApolloClient({ ssrMode: typeof window === 'undefined', link: from([parseBatchResponseMiddleware, errorLink, authLink.concat(batchHttpLink)]), cache: new InMemoryCache({ possibleTypes: introspectionToPossibleTypes(introspectionQueryResultData) }) }); parseBatchResponseMiddleware para analizar la respuesta por lotes. Cuando ejecuto la aplicación en modo de desarrollo, todo parece correcto, pero tan pronto como construyo la aplicación en el entorno de producción, devuelve un error de servidor interno 500:
TypeError: value.subscribe no es una función en Object.complete (/.../node_modules/@apollo/client/utilities/observables/Concast.js:57:43) en Concast.start (/.../node_modules/ @apollo/client/utilities/observables/Concast.js:83:23) en el nuevo Concast (/.../node_modules/@apollo/client/utilities/observables/Concast.js:75:19) en QueryManager.getObservableFromLink ( /.../node_modules/@apollo/client/core/QueryManager.js:551:35) en QueryManager.getResultsFromLink (/.../node_modules/@apollo/client/core/QueryManager.js:590:30) en resultadosFromLink (/.../node_modules/@apollo/client/core/QueryManager.js:755:26) en QueryManager.fetchQueryByPolicy (/.../node_modules/@apollo/client/core/QueryManager.js:782:21 ) en fromVariables (/.../node_modules/@apollo/client/core/QueryManager.js:638:26) en QueryManager.fetchQueryObservable (/.../node_modules/@apollo/client/core/QueryManager.js:645 :15) en QueryManager.fetchQuery (/.../node_modules/@apollo/client/core/QueryManager.js:260:21) en QueryManager.query (/.../node_ módulos/@apollo/client/core/QueryManager.js:345:21) en ApolloClient.query (/.../node_modules/@apollo/client/core/ApolloClient.js:133:34) en Function.ZtgetInitialProps (/ .../src/.next/server/pages/_app.js:158:151526) en Function.BrgetInitialProps (/.../src/.next/server/pages/_app.js:158:147992)
Cualquier idea para resolver este problema es muy apreciada.