From 4ff7b5847bb12e71db00d7a7b17ae785bc195824 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Thu, 22 Sep 2022 13:07:58 +0100 Subject: [PATCH 1/2] fix(remix): Use `import()` to get `react-router-dom` in Express wrapper. --- packages/remix/src/utils/serverAdapters/express.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/remix/src/utils/serverAdapters/express.ts b/packages/remix/src/utils/serverAdapters/express.ts index f3d3a7218281..2479059d605f 100644 --- a/packages/remix/src/utils/serverAdapters/express.ts +++ b/packages/remix/src/utils/serverAdapters/express.ts @@ -2,7 +2,8 @@ import { getCurrentHub } from '@sentry/hub'; import { flush } from '@sentry/node'; import { hasTracingEnabled } from '@sentry/tracing'; import { Transaction } from '@sentry/types'; -import { extractRequestData, isString, loadModule, logger } from '@sentry/utils'; +import { extractRequestData, isString, logger } from '@sentry/utils'; +import { cwd } from 'process'; import { createRoutes, @@ -18,7 +19,6 @@ import { ExpressRequest, ExpressRequestHandler, ExpressResponse, - ReactRouterDomPkg, ServerBuild, } from '../types'; @@ -27,7 +27,6 @@ function wrapExpressRequestHandler( build: ServerBuild, ): ExpressRequestHandler { const routes = createRoutes(build.routes); - const pkg = loadModule('react-router-dom'); // If the core request handler is already wrapped, don't wrap Express handler which uses it. if (isRequestHandlerWrapped) { @@ -52,6 +51,8 @@ function wrapExpressRequestHandler( } const url = new URL(request.url); + const pkg = await import(`${cwd()}/node_modules/react-router-dom`); + const [name, source] = getTransactionName(routes, url, pkg); const transaction = startRequestHandlerTransaction(hub, name, source, { headers: { From 5ac22daaf11d3d09075be60ae266a613c9e2bc7a Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Thu, 22 Sep 2022 14:33:29 +0100 Subject: [PATCH 2/2] Use synchronous `require` statement on wrap. --- packages/remix/src/utils/serverAdapters/express.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/remix/src/utils/serverAdapters/express.ts b/packages/remix/src/utils/serverAdapters/express.ts index 2479059d605f..6989f3c3e0f0 100644 --- a/packages/remix/src/utils/serverAdapters/express.ts +++ b/packages/remix/src/utils/serverAdapters/express.ts @@ -27,6 +27,8 @@ function wrapExpressRequestHandler( build: ServerBuild, ): ExpressRequestHandler { const routes = createRoutes(build.routes); + // eslint-disable-next-line @typescript-eslint/no-var-requires + const pkg = require(`${cwd()}/node_modules/react-router-dom`); // If the core request handler is already wrapped, don't wrap Express handler which uses it. if (isRequestHandlerWrapped) { @@ -51,8 +53,6 @@ function wrapExpressRequestHandler( } const url = new URL(request.url); - const pkg = await import(`${cwd()}/node_modules/react-router-dom`); - const [name, source] = getTransactionName(routes, url, pkg); const transaction = startRequestHandlerTransaction(hub, name, source, { headers: {