diff --git a/integration/loader-test.ts b/integration/loader-test.ts
index e8544423674..ea6149e2751 100644
--- a/integration/loader-test.ts
+++ b/integration/loader-test.ts
@@ -69,17 +69,22 @@ test.describe("loader in an app", () => {
let appFixture: AppFixture;
let HOME_PAGE_TEXT = "hello world";
+ let REDIRECT_TARGET_TEXT = "redirect target";
+ let FETCH_TARGET_TEXT = "fetch target";
test.beforeAll(async () => {
appFixture = await createAppFixture(
await createFixture({
files: {
"app/root.jsx": js`
+ import { Outlet } from '@remix-run/react'
+
export default function Root() {
return (
${HOME_PAGE_TEXT}
+
);
@@ -87,9 +92,25 @@ test.describe("loader in an app", () => {
`,
"app/routes/redirect.jsx": js`
import { redirect } from "@remix-run/node";
- export const loader = () => redirect("/");
+ export const loader = () => redirect("/redirect-target");
export default () => Yo
`,
+ "app/routes/redirect-target.jsx": js`
+ export default () => ${REDIRECT_TARGET_TEXT}
+ `,
+ "app/routes/fetch.jsx": js`
+ export function loader({ request }) {
+ return fetch(new URL(request.url).origin + '/fetch-target');
+ }
+ `,
+
+ "app/routes/fetch-target.jsx": js`
+ import { json } from "@remix-run/node";
+
+ export function loader() {
+ return json({ message: "${FETCH_TARGET_TEXT}" })
+ }
+ `,
},
})
);
@@ -103,5 +124,12 @@ test.describe("loader in an app", () => {
let app = new PlaywrightFixture(appFixture, page);
await app.goto("/redirect");
expect(await app.getHtml()).toMatch(HOME_PAGE_TEXT);
+ expect(await app.getHtml()).toMatch(REDIRECT_TARGET_TEXT);
+ });
+
+ test("handles raw fetch responses", async ({ page }) => {
+ let app = new PlaywrightFixture(appFixture, page);
+ let res = await app.goto(`/fetch`);
+ expect((await res.json()).message).toBe(FETCH_TARGET_TEXT);
});
});
diff --git a/packages/create-remix/CHANGELOG.md b/packages/create-remix/CHANGELOG.md
index 077795d3595..c126e00406e 100644
--- a/packages/create-remix/CHANGELOG.md
+++ b/packages/create-remix/CHANGELOG.md
@@ -1,5 +1,12 @@
# `create-remix`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/dev@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/create-remix/package.json b/packages/create-remix/package.json
index 9490fbcb594..8d2c9ab5c23 100644
--- a/packages/create-remix/package.json
+++ b/packages/create-remix/package.json
@@ -1,6 +1,6 @@
{
"name": "create-remix",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Create a new Remix app",
"homepage": "https://remix.run",
"bugs": {
@@ -17,7 +17,7 @@
"create-remix": "dist/cli.js"
},
"dependencies": {
- "@remix-run/dev": "1.8.1"
+ "@remix-run/dev": "1.8.2"
},
"engines": {
"node": ">=14"
diff --git a/packages/remix-architect/CHANGELOG.md b/packages/remix-architect/CHANGELOG.md
index 39af135d3a9..20bb5a749c1 100644
--- a/packages/remix-architect/CHANGELOG.md
+++ b/packages/remix-architect/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/architect`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/node@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-architect/package.json b/packages/remix-architect/package.json
index b786a927f5f..75c484ab242 100644
--- a/packages/remix-architect/package.json
+++ b/packages/remix-architect/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/architect",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Architect server request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -15,7 +15,7 @@
"typings": "dist/index.d.ts",
"dependencies": {
"@architect/functions": "^5.0.2",
- "@remix-run/node": "1.8.1",
+ "@remix-run/node": "1.8.2",
"@types/aws-lambda": "^8.10.82"
},
"devDependencies": {
diff --git a/packages/remix-cloudflare-pages/CHANGELOG.md b/packages/remix-cloudflare-pages/CHANGELOG.md
index 3e7f2290d1d..ee2f3971e8c 100644
--- a/packages/remix-cloudflare-pages/CHANGELOG.md
+++ b/packages/remix-cloudflare-pages/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/cloudflare-pages`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/cloudflare@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-cloudflare-pages/package.json b/packages/remix-cloudflare-pages/package.json
index 535c00394ef..2728abf553f 100644
--- a/packages/remix-cloudflare-pages/package.json
+++ b/packages/remix-cloudflare-pages/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/cloudflare-pages",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Cloudflare Pages request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -15,7 +15,7 @@
"typings": "dist/index.d.ts",
"module": "dist/esm/index.js",
"dependencies": {
- "@remix-run/cloudflare": "1.8.1"
+ "@remix-run/cloudflare": "1.8.2"
},
"devDependencies": {
"@cloudflare/workers-types": "^3.4.0",
diff --git a/packages/remix-cloudflare-workers/CHANGELOG.md b/packages/remix-cloudflare-workers/CHANGELOG.md
index e191513e4de..ba0027cc480 100644
--- a/packages/remix-cloudflare-workers/CHANGELOG.md
+++ b/packages/remix-cloudflare-workers/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/cloudflare-workers`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/cloudflare@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-cloudflare-workers/package.json b/packages/remix-cloudflare-workers/package.json
index 4ea1bb9bae8..0cc15444432 100644
--- a/packages/remix-cloudflare-workers/package.json
+++ b/packages/remix-cloudflare-workers/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/cloudflare-workers",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Cloudflare worker request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -16,7 +16,7 @@
"module": "dist/esm/index.js",
"dependencies": {
"@cloudflare/kv-asset-handler": "^0.1.3",
- "@remix-run/cloudflare": "1.8.1"
+ "@remix-run/cloudflare": "1.8.2"
},
"devDependencies": {
"@cloudflare/workers-types": "^3.4.0"
diff --git a/packages/remix-cloudflare/CHANGELOG.md b/packages/remix-cloudflare/CHANGELOG.md
index 7d66cd9abf1..2c547229d17 100644
--- a/packages/remix-cloudflare/CHANGELOG.md
+++ b/packages/remix-cloudflare/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/cloudflare`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/server-runtime@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-cloudflare/package.json b/packages/remix-cloudflare/package.json
index e8a4c093f0f..e1359f32b72 100644
--- a/packages/remix-cloudflare/package.json
+++ b/packages/remix-cloudflare/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/cloudflare",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Cloudflare platform abstractions for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -15,7 +15,7 @@
"typings": "dist/index.d.ts",
"dependencies": {
"@cloudflare/kv-asset-handler": "^0.1.3",
- "@remix-run/server-runtime": "1.8.1"
+ "@remix-run/server-runtime": "1.8.2"
},
"devDependencies": {
"@cloudflare/workers-types": "^3.4.0"
diff --git a/packages/remix-deno/CHANGELOG.md b/packages/remix-deno/CHANGELOG.md
index 47154cd3ef3..6f6d630df94 100644
--- a/packages/remix-deno/CHANGELOG.md
+++ b/packages/remix-deno/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/deno`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/server-runtime@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-deno/package.json b/packages/remix-deno/package.json
index 222baeee1e5..0ddb68ac802 100644
--- a/packages/remix-deno/package.json
+++ b/packages/remix-deno/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/deno",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Deno platform abstractions for Remix",
"homepage": "https://remix.run",
"main": "./index.ts",
@@ -15,7 +15,7 @@
"license": "MIT",
"sideEffects": false,
"dependencies": {
- "@remix-run/server-runtime": "1.8.1",
+ "@remix-run/server-runtime": "1.8.2",
"mime": "^3.0.0"
},
"engines": {
diff --git a/packages/remix-dev/CHANGELOG.md b/packages/remix-dev/CHANGELOG.md
index 3b0c83aa253..3201ba0c6cf 100644
--- a/packages/remix-dev/CHANGELOG.md
+++ b/packages/remix-dev/CHANGELOG.md
@@ -1,5 +1,13 @@
# `@remix-run/dev`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/server-runtime@1.8.2`
+ - `@remix-run/serve@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json
index 22b54ed29ce..90e8aa003b6 100644
--- a/packages/remix-dev/package.json
+++ b/packages/remix-dev/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/dev",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Dev tools and CLI for Remix",
"homepage": "https://remix.run",
"bugs": {
@@ -26,7 +26,7 @@
"@babel/types": "^7.20.2",
"@esbuild-plugins/node-modules-polyfill": "^0.1.4",
"@npmcli/package-json": "^2.0.0",
- "@remix-run/server-runtime": "1.8.1",
+ "@remix-run/server-runtime": "1.8.2",
"arg": "^5.0.1",
"cacache": "^15.0.5",
"chalk": "^4.1.2",
@@ -63,7 +63,7 @@
"xdm": "^2.0.0"
},
"devDependencies": {
- "@remix-run/serve": "1.8.1",
+ "@remix-run/serve": "1.8.2",
"@types/cacache": "^15.0.0",
"@types/gunzip-maybe": "^1.4.0",
"@types/inquirer": "^8.2.0",
@@ -82,7 +82,7 @@
"type-fest": "^2.16.0"
},
"peerDependencies": {
- "@remix-run/serve": "1.8.1"
+ "@remix-run/serve": "1.8.2"
},
"peerDependenciesMeta": {
"@remix-run/serve": {
diff --git a/packages/remix-eslint-config/CHANGELOG.md b/packages/remix-eslint-config/CHANGELOG.md
index 5e0981a026c..9ea852782a3 100644
--- a/packages/remix-eslint-config/CHANGELOG.md
+++ b/packages/remix-eslint-config/CHANGELOG.md
@@ -1,5 +1,9 @@
# `@remix-run/eslint-config`
+## 1.8.2
+
+No significant changes to this package were made in this release. [See the releases page on GitHub](https://github.com/remix-run/remix/releases/tag/remix%401.8.2) for an overview of all changes in v1.8.2.
+
## 1.8.1
No significant changes to this package were made in this release. [See the releases page on GitHub](https://github.com/remix-run/remix/releases/tag/remix%401.8.1) for an overview of all changes in v1.8.1.
diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json
index 3b9dad187d0..96bea736152 100644
--- a/packages/remix-eslint-config/package.json
+++ b/packages/remix-eslint-config/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/eslint-config",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "ESLint configuration for Remix projects",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-express/CHANGELOG.md b/packages/remix-express/CHANGELOG.md
index 604ba4bb94b..b3a75402403 100644
--- a/packages/remix-express/CHANGELOG.md
+++ b/packages/remix-express/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/express`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/node@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json
index af6581aee1a..417c2751147 100644
--- a/packages/remix-express/package.json
+++ b/packages/remix-express/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/express",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Express server request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -14,7 +14,7 @@
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"dependencies": {
- "@remix-run/node": "1.8.1"
+ "@remix-run/node": "1.8.2"
},
"devDependencies": {
"@types/express": "^4.17.9",
diff --git a/packages/remix-netlify/CHANGELOG.md b/packages/remix-netlify/CHANGELOG.md
index 7622279203a..34c71262859 100644
--- a/packages/remix-netlify/CHANGELOG.md
+++ b/packages/remix-netlify/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/netlify`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/node@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-netlify/package.json b/packages/remix-netlify/package.json
index 4ce1e1e3282..60b919ef3bd 100644
--- a/packages/remix-netlify/package.json
+++ b/packages/remix-netlify/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/netlify",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Netlify server request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -14,7 +14,7 @@
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"dependencies": {
- "@remix-run/node": "1.8.1"
+ "@remix-run/node": "1.8.2"
},
"devDependencies": {
"@netlify/functions": "^1.0.0"
diff --git a/packages/remix-node/CHANGELOG.md b/packages/remix-node/CHANGELOG.md
index 7faa0452744..ba4e2ef8a25 100644
--- a/packages/remix-node/CHANGELOG.md
+++ b/packages/remix-node/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/node`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/server-runtime@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-node/package.json b/packages/remix-node/package.json
index d3777860651..1c5251be93b 100644
--- a/packages/remix-node/package.json
+++ b/packages/remix-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/node",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Node.js platform abstractions for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -15,7 +15,7 @@
"typings": "dist/index.d.ts",
"sideEffects": false,
"dependencies": {
- "@remix-run/server-runtime": "1.8.1",
+ "@remix-run/server-runtime": "1.8.2",
"@remix-run/web-fetch": "^4.3.2",
"@remix-run/web-file": "^3.0.2",
"@remix-run/web-stream": "^1.0.3",
diff --git a/packages/remix-react/CHANGELOG.md b/packages/remix-react/CHANGELOG.md
index 3d3495287e0..fe45a92aa6e 100644
--- a/packages/remix-react/CHANGELOG.md
+++ b/packages/remix-react/CHANGELOG.md
@@ -1,5 +1,9 @@
# `@remix-run/react`
+## 1.8.2
+
+No significant changes to this package were made in this release. [See the releases page on GitHub](https://github.com/remix-run/remix/releases/tag/remix%401.8.2) for an overview of all changes in v1.8.2.
+
## 1.8.1
No significant changes to this package were made in this release. [See the releases page on GitHub](https://github.com/remix-run/remix/releases/tag/remix%401.8.1) for an overview of all changes in v1.8.1.
diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json
index 7d14706da4a..e6b97c6b7ee 100644
--- a/packages/remix-react/package.json
+++ b/packages/remix-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/react",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "React DOM bindings for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -20,7 +20,7 @@
"react-router-dom": "6.3.0"
},
"devDependencies": {
- "@remix-run/server-runtime": "1.8.1",
+ "@remix-run/server-runtime": "1.8.2",
"@testing-library/jest-dom": "^5.16.2",
"@testing-library/react": "^13.3.0",
"abort-controller": "^3.0.0",
diff --git a/packages/remix-serve/CHANGELOG.md b/packages/remix-serve/CHANGELOG.md
index 983684788eb..f810f0ffa06 100644
--- a/packages/remix-serve/CHANGELOG.md
+++ b/packages/remix-serve/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/serve`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/express@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json
index e1d8f547c17..8b03708da86 100644
--- a/packages/remix-serve/package.json
+++ b/packages/remix-serve/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/serve",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Production application server for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -17,7 +17,7 @@
"remix-serve": "dist/cli.js"
},
"dependencies": {
- "@remix-run/express": "1.8.1",
+ "@remix-run/express": "1.8.2",
"compression": "^1.7.4",
"express": "^4.17.1",
"morgan": "^1.10.0"
diff --git a/packages/remix-server-runtime/CHANGELOG.md b/packages/remix-server-runtime/CHANGELOG.md
index 38bd62be1b0..8af889f198e 100644
--- a/packages/remix-server-runtime/CHANGELOG.md
+++ b/packages/remix-server-runtime/CHANGELOG.md
@@ -1,5 +1,13 @@
# `@remix-run/server-runtime`
+## 1.8.2
+
+### Patch Changes
+
+- Remove `instanceof Response` checks in favor of `isResponse` ([#4782](https://github.com/remix-run/remix/pull/4782))
+- Fix performance regression with creation of `@remix-run/router` static handler ([#4790](https://github.com/remix-run/remix/pull/4790))
+- Update dependency for `@remix-run/router` to `v1.0.5` ([`bd84a9317`](https://github.com/remix-run/remix/commit/bd84a931770a6b5e20c2f21839b4322023432b25))
+
## 1.8.1
No significant changes to this package were made in this release. [See the releases page on GitHub](https://github.com/remix-run/remix/releases/tag/remix%401.8.1) for an overview of all changes in v1.8.1.
diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json
index 3bf2f81c111..915e2571523 100644
--- a/packages/remix-server-runtime/package.json
+++ b/packages/remix-server-runtime/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/server-runtime",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Server runtime for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -16,7 +16,7 @@
"typings": "dist/index.d.ts",
"module": "dist/esm/index.js",
"dependencies": {
- "@remix-run/router": "1.0.4",
+ "@remix-run/router": "1.0.5",
"@types/cookie": "^0.4.0",
"@web3-storage/multipart-parser": "^1.0.0",
"cookie": "^0.4.1",
diff --git a/packages/remix-server-runtime/routes.ts b/packages/remix-server-runtime/routes.ts
index 4dceb42d34d..139c66b7a10 100644
--- a/packages/remix-server-runtime/routes.ts
+++ b/packages/remix-server-runtime/routes.ts
@@ -1,11 +1,9 @@
-// TODO: RRR - Change import to @remix-run/router
import type {
AgnosticDataRouteObject,
ActionFunctionArgs,
LoaderFunctionArgs,
} from "@remix-run/router";
-import { type AppLoadContext } from "./data";
import { callRouteActionRR, callRouteLoaderRR } from "./data";
import type { ServerRouteModule } from "./routeModules";
@@ -56,7 +54,6 @@ export function createRoutes(
// createStaticHandler
export function createStaticHandlerDataRoutes(
manifest: ServerRouteManifest,
- loadContext: AppLoadContext,
parentId?: string
): AgnosticDataRouteObject[] {
return Object.values(manifest)
@@ -73,8 +70,9 @@ export function createStaticHandlerDataRoutes(
loader: route.module.loader
? (args: LoaderFunctionArgs) =>
callRouteLoaderRR({
- ...args,
- loadContext,
+ request: args.request,
+ params: args.params,
+ loadContext: args.context,
loader: route.module.loader!,
routeId: route.id,
})
@@ -82,8 +80,9 @@ export function createStaticHandlerDataRoutes(
action: route.module.action
? (args: ActionFunctionArgs) =>
callRouteActionRR({
- ...args,
- loadContext,
+ request: args.request,
+ params: args.params,
+ loadContext: args.context,
action: route.module.action!,
routeId: route.id,
})
@@ -100,11 +99,7 @@ export function createStaticHandlerDataRoutes(
}
: {
caseSensitive: route.caseSensitive,
- children: createStaticHandlerDataRoutes(
- manifest,
- loadContext,
- route.id
- ),
+ children: createStaticHandlerDataRoutes(manifest, route.id),
...commonRoute,
};
});
diff --git a/packages/remix-server-runtime/server.ts b/packages/remix-server-runtime/server.ts
index feea61bdbd7..e814fddb5bb 100644
--- a/packages/remix-server-runtime/server.ts
+++ b/packages/remix-server-runtime/server.ts
@@ -17,7 +17,7 @@ import type { RouteMatch } from "./routeMatching";
import { matchServerRoutes } from "./routeMatching";
import type { ServerRoute, ServerRouteManifest } from "./routes";
import { createStaticHandlerDataRoutes, createRoutes } from "./routes";
-import { json, isRedirectResponse } from "./responses";
+import { json, isRedirectResponse, isResponse } from "./responses";
import { createServerHandoffString } from "./serverHandoff";
export type RequestHandler = (
@@ -35,25 +35,24 @@ export const createRequestHandler: CreateRequestHandlerFunction = (
mode
) => {
let routes = createRoutes(build.routes);
+ let dataRoutes = createStaticHandlerDataRoutes(build.routes);
let serverMode = isServerMode(mode) ? mode : ServerMode.Production;
+ let staticHandler = unstable_createStaticHandler(dataRoutes);
return async function requestHandler(request, loadContext = {}) {
let url = new URL(request.url);
let matches = matchServerRoutes(routes, url.pathname);
- let staticHandler = unstable_createStaticHandler(
- createStaticHandlerDataRoutes(build.routes, loadContext)
- );
-
let response: Response;
if (url.searchParams.has("_data")) {
let routeId = url.searchParams.get("_data")!;
response = await handleDataRequestRR(
serverMode,
- staticHandler!,
+ staticHandler,
routeId,
- request
+ request,
+ loadContext
);
if (build.entry.module.handleDataRequest) {
@@ -70,16 +69,18 @@ export const createRequestHandler: CreateRequestHandlerFunction = (
) {
response = await handleResourceRequestRR(
serverMode,
- staticHandler!,
+ staticHandler,
matches.slice(-1)[0].route.id,
- request
+ request,
+ loadContext
);
} else {
response = await handleDocumentRequestRR(
serverMode,
build,
- staticHandler!,
- request
+ staticHandler,
+ request,
+ loadContext
);
}
@@ -99,10 +100,14 @@ async function handleDataRequestRR(
serverMode: ServerMode,
staticHandler: StaticHandler,
routeId: string,
- request: Request
+ request: Request,
+ loadContext: AppLoadContext
) {
try {
- let response = await staticHandler.queryRoute(request, routeId);
+ let response = await staticHandler.queryRoute(request, {
+ routeId,
+ requestContext: loadContext,
+ });
if (isRedirectResponse(response)) {
// We don't have any way to prevent a fetch request from following
@@ -123,7 +128,7 @@ async function handleDataRequestRR(
return response;
} catch (error) {
- if (error instanceof Response) {
+ if (isResponse(error)) {
error.headers.set("X-Remix-Catch", "yes");
return error;
}
@@ -204,11 +209,14 @@ async function handleDocumentRequestRR(
serverMode: ServerMode,
build: ServerBuild,
staticHandler: StaticHandler,
- request: Request
+ request: Request,
+ loadContext: AppLoadContext
) {
let context;
try {
- context = await staticHandler.query(request);
+ context = await staticHandler.query(request, {
+ requestContext: loadContext,
+ });
} catch (error) {
if (!request.signal.aborted && serverMode !== ServerMode.Test) {
console.error(error);
@@ -217,7 +225,7 @@ async function handleDocumentRequestRR(
return new Response(null, { status: 500 });
}
- if (context instanceof Response) {
+ if (isResponse(context)) {
return context;
}
@@ -364,21 +372,25 @@ async function handleResourceRequestRR(
serverMode: ServerMode,
staticHandler: StaticHandler,
routeId: string,
- request: Request
+ request: Request,
+ loadContext: AppLoadContext
) {
try {
// Note we keep the routeId here to align with the Remix handling of
// resource routes which doesn't take ?index into account and just takes
// the leaf match
- let response = await staticHandler.queryRoute(request, routeId);
+ let response = await staticHandler.queryRoute(request, {
+ routeId,
+ requestContext: loadContext,
+ });
// callRouteLoader/callRouteAction always return responses
invariant(
- response instanceof Response,
+ isResponse(response),
"Expected a Response to be returned from queryRoute"
);
return response;
} catch (error) {
- if (error instanceof Response) {
+ if (isResponse(error)) {
// Note: Not functionally required but ensures that our response headers
// match identically to what Remix returns
error.headers.set("X-Remix-Catch", "yes");
diff --git a/packages/remix-vercel/CHANGELOG.md b/packages/remix-vercel/CHANGELOG.md
index dbfd7d77e3d..59e61a83dd5 100644
--- a/packages/remix-vercel/CHANGELOG.md
+++ b/packages/remix-vercel/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/vercel`
+## 1.8.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/node@1.8.2`
+
## 1.8.1
### Patch Changes
diff --git a/packages/remix-vercel/package.json b/packages/remix-vercel/package.json
index 0a176184479..cba5f008ad0 100644
--- a/packages/remix-vercel/package.json
+++ b/packages/remix-vercel/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/vercel",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Vercel server request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -14,7 +14,7 @@
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"dependencies": {
- "@remix-run/node": "1.8.1"
+ "@remix-run/node": "1.8.2"
},
"devDependencies": {
"@types/supertest": "^2.0.10",
diff --git a/packages/remix/package.json b/packages/remix/package.json
index cb5cadfdeda..d6f6ef795b1 100644
--- a/packages/remix/package.json
+++ b/packages/remix/package.json
@@ -1,6 +1,6 @@
{
"name": "remix",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "A framework for building better websites",
"homepage": "https://remix.run",
"bugs": {
diff --git a/yarn.lock b/yarn.lock
index 1cdadf8e80e..9773149d9c5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2069,10 +2069,10 @@
"@changesets/types" "^5.0.0"
dotenv "^8.1.0"
-"@remix-run/router@1.0.4":
- version "1.0.4"
- resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.0.4.tgz#cbfbec6735711e7c2fc93b9b40adf70ef5a39990"
- integrity sha512-gTL8H5USTAKOyVA4xczzDJnC3HMssdFa3tRlwBicXynx9XfiXwneHnYQogwSKpdCkjXISrEKSTtX62rLpNEVQg==
+"@remix-run/router@1.0.5":
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.0.5.tgz#d5c65626add4c3c185a89aa5bd38b1e42daec075"
+ integrity sha512-my0Mycd+jruq/1lQuO5LBB6WTlL/e8DTCYWp44DfMTDcXz8DcTlgF0ISaLsGewt+ctHN+yA8xMq3q/N7uWJPug==
"@remix-run/web-blob@^3.0.3", "@remix-run/web-blob@^3.0.4":
version "3.0.4"