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))
250
-
251
249
-`createCookie`
252
250
-`createCookieSessionStorage`
253
251
-`createMemorySessionStorage`
@@ -256,7 +254,6 @@
256
254
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)
257
255
258
256
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))
222
221
- 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))
223
-
224
222
-`createCookie`
225
223
-`createCookieSessionStorage`
226
224
-`createMemorySessionStorage`
@@ -229,7 +227,6 @@
229
227
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)
230
228
231
229
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:
782
-
783
781
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
784
782
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
785
783
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -794,7 +792,6 @@
794
792
```
795
793
796
794
Check out our docs for more:
797
-
798
795
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
799
796
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
800
797
@@ -994,7 +991,6 @@
994
991
- Vite: Provide `Unstable_ServerBundlesFunction` and `Unstable_VitePluginConfig` types ([#8654](https://github.com/remix-run/remix/pull/8654))
995
992
996
993
- Vite: add `--sourcemapClient` and `--sourcemapServer` flags to `remix vite:build` ([#8613](https://github.com/remix-run/remix/pull/8613))
997
-
998
994
- `--sourcemapClient`
999
995
1000
996
- `--sourcemapClient=inline`
@@ -1331,7 +1327,6 @@
1331
1327
- 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))
1332
1328
1333
1329
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:
1334
-
1335
1330
- Leveraging a data source local to the browser (i.e., `localStorage`)
1336
1331
- Managing a client-side cache of server data (like `IndexedDB`)
1337
1332
- Bypassing the Remix server in a BFF setup and hitting your API directly from the browser
@@ -1735,7 +1730,6 @@
1735
1730
- Output esbuild metafiles for bundle analysis ([#6772](https://github.com/remix-run/remix/pull/6772))
1736
1731
1737
1732
Written to server build directory (`build/` by default):
1738
-
1739
1733
- `metafile.css.json`
1740
1734
- `metafile.js.json` (browser JS)
1741
1735
- `metafile.server.json` (server JS)
@@ -1833,7 +1827,6 @@
1833
1827
- built-in tls support ([#6483](https://github.com/remix-run/remix/pull/6483))
1834
1828
1835
1829
New options:
1836
-
1837
1830
- `--tls-key` / `tlsKey`: TLS key
1838
1831
- `--tls-cert` / `tlsCert`: TLS Certificate
1839
1832
@@ -2104,7 +2097,6 @@
2104
2097
```
2105
2098
2106
2099
The dev server will:
2107
-
2108
2100
- force `NODE_ENV=development` and warn you if it was previously set to something else
2109
2101
- rebuild your app whenever your Remix app code changes
2110
2102
- restart your app server whenever rebuilds succeed
- Remove single fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
222
221
223
222
- 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))
224
-
225
223
-`createCookie`
226
224
-`createCookieSessionStorage`
227
225
-`createMemorySessionStorage`
@@ -230,7 +228,6 @@
230
228
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)
231
229
232
230
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
233
-
234
231
-`createCookieFactory`
235
232
-`createSessionStorageFactory`
236
233
-`createCookieSessionStorageFactory`
@@ -638,12 +635,10 @@
638
635
- 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
@@ -636,12 +636,10 @@
636
636
- 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))
68
67
69
-
- server action revalidation opt out via $SKIP\_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
68
+
- server action revalidation opt out via $SKIP_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
70
69
71
70
- Properly escape interpolated param values in `generatePath()` ([#13530](https://github.com/remix-run/react-router/pull/13530))
72
71
@@ -115,7 +114,6 @@
115
114
- Remove dependency on `@types/node` in TypeScript declaration files ([#14059](https://github.com/remix-run/react-router/pull/14059))
116
115
117
116
- Fix types for `UIMatch` to reflect that the `loaderData`/`data` properties may be `undefined` ([#12206](https://github.com/remix-run/react-router/pull/12206))
118
-
119
117
- 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
120
118
- 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
121
119
- ⚠️ 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.
@@ -149,7 +147,6 @@
149
147
- \[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))
150
148
151
149
- \[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))
152
-
153
150
- The API has been renamed to `unstable_generateMiddlewareResponse` for clarity
154
151
- 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
155
152
- The `query` version of the API now has a signature of `(query: (r: Request) => Promise<StaticHandlerContext | Response>) => Promise<Response>`
@@ -795,7 +792,6 @@
795
792
```
796
793
797
794
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))
984
980
985
981
- 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))
986
-
987
982
- `createCookie`
988
983
- `createCookieSessionStorage`
989
984
- `createMemorySessionStorage`
@@ -992,7 +987,6 @@ _No changes_
992
987
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)
993
988
994
989
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
995
-
996
990
- `createCookieFactory`
997
991
- `createSessionStorageFactory`
998
992
- `createCookieSessionStorageFactory`
@@ -1148,7 +1142,6 @@ _No changes_
1148
1142
```
1149
1143
1150
1144
This initial implementation targets type inference for:
1151
-
1152
1145
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
1153
1146
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
1154
1147
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -1163,7 +1156,6 @@ _No changes_
1163
1156
```
1164
1157
1165
1158
Check out our docs for more:
1166
-
1167
1159
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
1168
1160
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
0 commit comments