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"