From e3720df7b59363614906ae775e3af486f80c7302 Mon Sep 17 00:00:00 2001 From: Tim Griesser Date: Tue, 2 Nov 2021 19:37:26 -0400 Subject: [PATCH] chore: Force single resolution for core modules, infinite loop guard (#18764) --- .../src/graphql/urqlExchangeNamedRoute.ts | 4 ++++ packages/frontend-shared/vite.config.ts | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/frontend-shared/src/graphql/urqlExchangeNamedRoute.ts b/packages/frontend-shared/src/graphql/urqlExchangeNamedRoute.ts index 87e5a9cf067c..985c600acccc 100644 --- a/packages/frontend-shared/src/graphql/urqlExchangeNamedRoute.ts +++ b/packages/frontend-shared/src/graphql/urqlExchangeNamedRoute.ts @@ -6,6 +6,10 @@ export const namedRouteExchange: Exchange = ({ client, forward }) => { return forward(pipe( ops$, map((o) => { + if (!o.context.url.endsWith('/graphql')) { + throw new Error(`Infinite loop detected? Ping @tgriesser to help debug`) + } + return { ...o, context: { diff --git a/packages/frontend-shared/vite.config.ts b/packages/frontend-shared/vite.config.ts index 71451b4f6b0d..02cb277f3630 100644 --- a/packages/frontend-shared/vite.config.ts +++ b/packages/frontend-shared/vite.config.ts @@ -95,7 +95,21 @@ export const makeConfig = (config: Partial = {}, plugins: PluginOpti }, }, - resolve: { alias }, + resolve: { + alias, + dedupe: [ + 'vue', + '@vue/compiler-core', + '@vue/compiler-dom', + '@vue/compiler-sfc', + '@vueuse/core', + '@urql/core', + '@urql/devtools', + '@urql/exchange-execute', + '@urql/exchange-graphcache', + '@urql/vue', + ], + }, // You cannot add or remove arbitrary options from shared plugins. // Please use the PluginsOverride option for this.