You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- For Remix consumers migrating to React Router, the `crypto` global from the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is now required when using cookie and session APIs. This means that the following APIs are provided from `react-router` rather than platform-specific packages: ([#11837](https://github.com/remix-run/react-router/pull/11837))
242
-
243
241
-`createCookie`
244
242
-`createCookieSessionStorage`
245
243
-`createMemorySessionStorage`
@@ -248,7 +246,6 @@
248
246
For consumers running older versions of Node, the `installGlobals` function from `@remix-run/node` has been updated to define `globalThis.crypto`, using [Node's `require('node:crypto').webcrypto` implementation.](https://nodejs.org/api/webcrypto.html)
249
247
250
248
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
- For Remix consumers migrating to React Router, all exports from `@remix-run/cloudflare-pages` are now provided for React Router consumers in the `@react-router/cloudflare` package. There is no longer a separate package for Cloudflare Pages. ([#11801](https://github.com/remix-run/react-router/pull/11801))
215
214
- For Remix consumers migrating to React Router, the `crypto` global from the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is now required when using cookie and session APIs. This means that the following APIs are provided from `react-router` rather than platform-specific packages: ([#11837](https://github.com/remix-run/react-router/pull/11837))
216
-
217
215
-`createCookie`
218
216
-`createCookieSessionStorage`
219
217
-`createMemorySessionStorage`
@@ -222,7 +220,6 @@
222
220
For consumers running older versions of Node, the `installGlobals` function from `@remix-run/node` has been updated to define `globalThis.crypto`, using [Node's `require('node:crypto').webcrypto` implementation.](https://nodejs.org/api/webcrypto.html)
223
221
224
222
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
This initial implementation targets type inference for:
763
-
764
762
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
765
763
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
766
764
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -775,7 +773,6 @@
775
773
```
776
774
777
775
Check out our docs for more:
778
-
779
776
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
780
777
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
781
778
@@ -975,7 +972,6 @@
975
972
- Vite: Provide `Unstable_ServerBundlesFunction` and `Unstable_VitePluginConfig` types ([#8654](https://github.com/remix-run/remix/pull/8654))
976
973
977
974
- Vite: add `--sourcemapClient` and `--sourcemapServer` flags to `remix vite:build` ([#8613](https://github.com/remix-run/remix/pull/8613))
978
-
979
975
- `--sourcemapClient`
980
976
981
977
- `--sourcemapClient=inline`
@@ -1312,7 +1308,6 @@
1312
1308
- Add support for `clientLoader`/`clientAction`/`HydrateFallback` route exports ([RFC](https://github.com/remix-run/remix/discussions/7634)) ([#8173](https://github.com/remix-run/remix/pull/8173))
1313
1309
1314
1310
Remix now supports loaders/actions that run on the client (in addition to, or instead of the loader/action that runs on the server). While we still recommend server loaders/actions for the majority of your data needs in a Remix app - these provide some levers you can pull for more advanced use-cases such as:
1315
-
1316
1311
- Leveraging a data source local to the browser (i.e., `localStorage`)
1317
1312
- Managing a client-side cache of server data (like `IndexedDB`)
1318
1313
- Bypassing the Remix server in a BFF setup and hitting your API directly from the browser
@@ -1716,7 +1711,6 @@
1716
1711
- Output esbuild metafiles for bundle analysis ([#6772](https://github.com/remix-run/remix/pull/6772))
1717
1712
1718
1713
Written to server build directory (`build/` by default):
1719
-
1720
1714
- `metafile.css.json`
1721
1715
- `metafile.js.json` (browser JS)
1722
1716
- `metafile.server.json` (server JS)
@@ -1814,7 +1808,6 @@
1814
1808
- built-in tls support ([#6483](https://github.com/remix-run/remix/pull/6483))
1815
1809
1816
1810
New options:
1817
-
1818
1811
- `--tls-key` / `tlsKey`: TLS key
1819
1812
- `--tls-cert` / `tlsCert`: TLS Certificate
1820
1813
@@ -2085,7 +2078,6 @@
2085
2078
```
2086
2079
2087
2080
The dev server will:
2088
-
2089
2081
- force `NODE_ENV=development` and warn you if it was previously set to something else
2090
2082
- rebuild your app whenever your Remix app code changes
2091
2083
- restart your app server whenever rebuilds succeed
- Remove single fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
215
214
216
215
- For Remix consumers migrating to React Router, the `crypto` global from the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is now required when using cookie and session APIs. This means that the following APIs are provided from `react-router` rather than platform-specific packages: ([#11837](https://github.com/remix-run/react-router/pull/11837))
217
-
218
216
-`createCookie`
219
217
-`createCookieSessionStorage`
220
218
-`createMemorySessionStorage`
@@ -223,7 +221,6 @@
223
221
For consumers running older versions of Node, the `installGlobals` function from `@remix-run/node` has been updated to define `globalThis.crypto`, using [Node's `require('node:crypto').webcrypto` implementation.](https://nodejs.org/api/webcrypto.html)
224
222
225
223
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
226
-
227
224
-`createCookieFactory`
228
225
-`createSessionStorageFactory`
229
226
-`createCookieSessionStorageFactory`
@@ -631,12 +628,10 @@
631
628
- Introduces the `defer()` API from `@remix-run/router` with support for server-rendering and HTTP streaming. This utility allows you to defer values returned from `loader` functions by returning promises instead of resolved values. This has been refered to as _"sending a promise over the wire"_. ([#4920](https://github.com/remix-run/remix/pull/4920))
Copy file name to clipboardExpand all lines: packages/react-router-serve/CHANGELOG.md
-2Lines changed: 0 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -626,12 +626,10 @@
626
626
- Introduces the `defer()`API from `@remix-run/router`with support for server-rendering and HTTPstreaming. This utility allows you to defer values returned from `loader` functions by returning promises instead of resolved values. This has been refered to as _"sending a promise over the wire"_. ([#4920](https://github.com/remix-run/remix/pull/4920))
- \[UNSTABLE] Add `<RouterProvider unstable_onError>`/`<HydratedRouter unstable_onError>` prop for client side error reporting ([#14162](https://github.com/remix-run/react-router/pull/14162))
42
41
43
-
- server action revalidation opt out via $SKIP\_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
42
+
- server action revalidation opt out via $SKIP_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
44
43
45
44
- Properly escape interpolated param values in `generatePath()` ([#13530](https://github.com/remix-run/react-router/pull/13530))
46
45
@@ -89,7 +88,6 @@
89
88
- Remove dependency on `@types/node` in TypeScript declaration files ([#14059](https://github.com/remix-run/react-router/pull/14059))
90
89
91
90
- Fix types for `UIMatch` to reflect that the `loaderData`/`data` properties may be `undefined` ([#12206](https://github.com/remix-run/react-router/pull/12206))
92
-
93
91
- When an `ErrorBoundary` is being rendered, not all active matches will have loader data available, since it may have been their `loader` that threw to trigger the boundary
94
92
- The `UIMatch.data` type was not correctly handing this and would always reflect the presence of data, leading to the unexpected runtime errors when an `ErrorBoundary` was rendered
95
93
- ⚠️ This may cause some type errors to show up in your code for unguarded `match.data` accesses - you should properly guard for `undefined` values in those scenarios.
@@ -123,7 +121,6 @@
123
121
- \[UNSTABLE] When middleware is enabled, make the `context` parameter read-only (via `Readonly<unstable_RouterContextProvider>`) so that TypeScript will not allow you to write arbitrary fields to it in loaders, actions, or middleware. ([#14097](https://github.com/remix-run/react-router/pull/14097))
124
122
125
123
- \[UNSTABLE] Rename and alter the signature/functionality of the `unstable_respond` API in `staticHandler.query`/`staticHandler.queryRoute` ([#14103](https://github.com/remix-run/react-router/pull/14103))
126
-
127
124
- The API has been renamed to `unstable_generateMiddlewareResponse` for clarity
128
125
- The main functional change is that instead of running the loaders/actions before calling `unstable_respond` and handing you the result, we now pass a `query`/`queryRoute` function as a parameter and you execute the loaders/actions inside your callback, giving you full access to pre-processing and error handling
129
126
- The `query` version of the API now has a signature of `(query: (r: Request) => Promise<StaticHandlerContext | Response>) => Promise<Response>`
@@ -769,7 +766,6 @@
769
766
```
770
767
771
768
Similar to server-side requests, a fresh `context` will be created per navigation (or `fetcher` call). If you have initial data you'd like to populate in the context for every request, you can provide an `unstable_getContext` function at the root of your app:
- Remove `future.v7_normalizeFormMethod` future flag ([#11697](https://github.com/remix-run/react-router/pull/11697))
958
954
959
955
- For Remix consumers migrating to React Router, the `crypto` global from the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is now required when using cookie and session APIs. This means that the following APIs are provided from `react-router` rather than platform-specific packages: ([#11837](https://github.com/remix-run/react-router/pull/11837))
960
-
961
956
- `createCookie`
962
957
- `createCookieSessionStorage`
963
958
- `createMemorySessionStorage`
@@ -966,7 +961,6 @@ _No changes_
966
961
For consumers running older versions of Node, the `installGlobals` function from `@remix-run/node` has been updated to define `globalThis.crypto`, using [Node's `require('node:crypto').webcrypto` implementation.](https://nodejs.org/api/webcrypto.html)
967
962
968
963
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
969
-
970
964
- `createCookieFactory`
971
965
- `createSessionStorageFactory`
972
966
- `createCookieSessionStorageFactory`
@@ -1122,7 +1116,6 @@ _No changes_
1122
1116
```
1123
1117
1124
1118
This initial implementation targets type inference for:
1125
-
1126
1119
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
1127
1120
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
1128
1121
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -1137,7 +1130,6 @@ _No changes_
1137
1130
```
1138
1131
1139
1132
Check out our docs for more:
1140
-
1141
1133
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
1142
1134
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
0 commit comments