javascript - Errore: Errore di rete: url_1.URL non è un costruttore in new ApolloError
Sto cercando di autenticare il client Apollo con AWS IAM.
Ho il seguente script in TypeScript per configurare il mio client Apollo
/* eslint-disable import/prefer-default-export */
/* eslint-disable import/no-mutable-exports */
import { ApolloClient } from 'apollo-client';
import { createHttpLink } from 'apollo-link-http';
import axios from 'axios';
import { aws4Interceptor } from 'aws4-axios';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { buildAxiosFetch } from '@lifeomic/axios-fetch';
interface IConnection {
uri: string;
region: string;
accessKeyId: string;
secretAccessKey: string;
sessionToken: string;
}
export const initApolloClient = (connection: IConnection): ApolloClient<any> => {
let apolloClient: ApolloClient<any> = null;
const interceptor = aws4Interceptor(
{
region: connection.region,
service: 'execute-api',
},
{
accessKeyId: connection.accessKeyId,
secretAccessKey: connection.secretAccessKey,
sessionToken: connection.sessionToken,
}
);
axios.interceptors.request.use(interceptor);
console.log('Set apollo client');
apolloClient = new ApolloClient({
link: createHttpLink({
uri: connection.uri,
fetch: buildAxiosFetch(axios),
}),
cache: new InMemoryCache(),
});
return apolloClient;
};
Questo codice funziona bene nel mio progetto backend lambda node js. Ma lo stesso codice nel mio progetto frontend react causa questo errore quando cerco di interrogare i dati.
users-list.tsx:9 error Error: Network error: url_1.URL is not a constructor
at new ApolloError (ApolloError.ts:46)
at ObservableQuery.getCurrentResult (ObservableQuery.ts:199)
at QueryData.getQueryResult (QueryData.ts:333)
at QueryData._this.getExecuteResult (QueryData.ts:140)
at QueryData.execute (QueryData.ts:61)
at useBaseQuery.ts:63
at useDeepMemo (useDeepMemo.ts:18)
at useBaseQuery (useBaseQuery.ts:62)
at useQuery (useQuery.ts:11)
at UsersList (users-list.tsx:6)
at renderWithHooks (react-dom.development.js:14985)
at updateFunctionComponent (react-dom.development.js:17356)
at beginWork (react-dom.development.js:19063)
at beginWork$1 (react-dom.development.js:23940)
at performUnitOfWork (react-dom.development.js:22776)
at workLoopSync (react-dom.development.js:22707)
at renderRootSync (react-dom.development.js:22670)
at performSyncWorkOnRoot (react-dom.development.js:22293)
at react-dom.development.js:11327
at unstable_runWithPriority (scheduler.development.js:646)
at runWithPriority$1 (react-dom.development.js:11276)
at flushSyncCallbackQueueImpl (react-dom.development.js:11322)
at flushSyncCallbackQueue (react-dom.development.js:11309)
at scheduleUpdateOnFiber (react-dom.development.js:21893)
at dispatchAction (react-dom.development.js:16139)**strong text**
:
:
Puoi vedere che le versioni di tutti i pacchetti che sto usando sono le stesse.
Il mio codice
Ho creato una nuova app React con yarn create react-app my-app --template typescript e ho creato una piccola demo del mio problema in un repository GitHub. (Non ci sono credenziali IAM nel repository, ma puoi comunque vedere il problema senza di esse)
Qualcuno ha qualche idea;
- Cosa potrebbe causare questo problema?
- Come potrei fare il debug di questo?
Grazie
Risposta n. 1
Ho risolto il mio problema.
Ho aggiornato aws4-axios
In package.json modificato in
"aws4-axios": "^2.0.1",
