Skip to content

Commit

Permalink
Update single fetch deprecation notice to also include info about null (
Browse files Browse the repository at this point in the history
#10145)

Co-authored-by: Matt Brophy <[email protected]>
  • Loading branch information
JakeGinnivan and brophdawg11 authored Oct 23, 2024
1 parent 474102b commit f7a5272
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 12 deletions.
5 changes: 5 additions & 0 deletions .changeset/grumpy-llamas-leave.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@remix-run/server-runtime": patch
---

Update externally-accessed resource routes warning to cover null usage as well
46 changes: 40 additions & 6 deletions integration/single-fetch-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1687,12 +1687,46 @@ test.describe("single-fetch", () => {
});

expect(warnLogs).toEqual([
"⚠️ REMIX FUTURE CHANGE: Resource routes will no longer be able to return " +
"raw JavaScript objects in v3 when Single Fetch becomes the default. You " +
"can prepare for this change at your convenience by wrapping the data " +
"returned from your `loader` function in the `routes/resource` route with " +
"`json()`. For instructions on making this change see " +
"https://remix.run/docs/en/v2.9.2/guides/single-fetch#resource-routes",
"⚠️ REMIX FUTURE CHANGE: Externally-accessed resource routes will no longer be " +
"able to return raw JavaScript objects or `null` in React Router v7 when " +
"Single Fetch becomes the default. You can prepare for this change at your " +
`convenience by wrapping the data returned from your \`loader\` function in ` +
`the \`routes/resource\` route with \`json()\`. For instructions on making this ` +
"change, see https://remix.run/docs/en/v2.13.1/guides/single-fetch#resource-routes",
]);
console.warn = oldConsoleWarn;
});

test("wraps resource route 'null' returns in json with a deprecation warning", async () => {
let oldConsoleWarn = console.warn;
let warnLogs: unknown[] = [];
console.warn = (...args) => warnLogs.push(...args);

let fixture = await createFixture({
config: {
future: {
v3_singleFetch: true,
},
},
files: {
...files,
"app/routes/resource.tsx": js`
export function loader() {
return null;
}
`,
},
});
let res = await fixture.requestResource("/resource");
expect(await res.json()).toEqual(null);

expect(warnLogs).toEqual([
"⚠️ REMIX FUTURE CHANGE: Externally-accessed resource routes will no longer be " +
"able to return raw JavaScript objects or `null` in React Router v7 when " +
"Single Fetch becomes the default. You can prepare for this change at your " +
`convenience by wrapping the data returned from your \`loader\` function in ` +
`the \`routes/resource\` route with \`json()\`. For instructions on making this ` +
"change, see https://remix.run/docs/en/v2.13.1/guides/single-fetch#resource-routes",
]);
console.warn = oldConsoleWarn;
});
Expand Down
12 changes: 6 additions & 6 deletions packages/remix-server-runtime/deprecations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ export function resourceRouteJsonWarning(
routeId: string
) {
return (
"⚠️ REMIX FUTURE CHANGE: Resource routes will no longer be able to " +
"return raw JavaScript objects in v3 when Single Fetch becomes the default. " +
"You can prepare for this change at your convenience by wrapping the data " +
`returned from your \`${type}\` function in the \`${routeId}\` route with ` +
"`json()`. For instructions on making this change see " +
"https://remix.run/docs/en/v2.9.2/guides/single-fetch#resource-routes"
"⚠️ REMIX FUTURE CHANGE: Externally-accessed resource routes will no longer be " +
"able to return raw JavaScript objects or `null` in React Router v7 when " +
"Single Fetch becomes the default. You can prepare for this change at your " +
`convenience by wrapping the data returned from your \`${type}\` function in ` +
`the \`${routeId}\` route with \`json()\`. For instructions on making this ` +
"change, see https://remix.run/docs/en/v2.13.1/guides/single-fetch#resource-routes"
);
}

0 comments on commit f7a5272

Please sign in to comment.