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))
258
-
259
257
-`createCookie`
260
258
-`createCookieSessionStorage`
261
259
-`createMemorySessionStorage`
@@ -264,7 +262,6 @@
264
262
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)
265
263
266
264
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))
229
228
- 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))
230
-
231
229
-`createCookie`
232
230
-`createCookieSessionStorage`
233
231
-`createMemorySessionStorage`
@@ -236,7 +234,6 @@
236
234
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)
237
235
238
236
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:
791
-
792
790
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
793
791
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
794
792
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -803,7 +801,6 @@
803
801
```
804
802
805
803
Check out our docs for more:
806
-
807
804
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
808
805
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
809
806
@@ -1003,7 +1000,6 @@
1003
1000
- Vite: Provide `Unstable_ServerBundlesFunction` and `Unstable_VitePluginConfig` types ([#8654](https://github.com/remix-run/remix/pull/8654))
1004
1001
1005
1002
- Vite: add `--sourcemapClient` and `--sourcemapServer` flags to `remix vite:build` ([#8613](https://github.com/remix-run/remix/pull/8613))
1006
-
1007
1003
- `--sourcemapClient`
1008
1004
1009
1005
- `--sourcemapClient=inline`
@@ -1340,7 +1336,6 @@
1340
1336
- 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))
1341
1337
1342
1338
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:
1343
-
1344
1339
- Leveraging a data source local to the browser (i.e., `localStorage`)
1345
1340
- Managing a client-side cache of server data (like `IndexedDB`)
1346
1341
- Bypassing the Remix server in a BFF setup and hitting your API directly from the browser
@@ -1744,7 +1739,6 @@
1744
1739
- Output esbuild metafiles for bundle analysis ([#6772](https://github.com/remix-run/remix/pull/6772))
1745
1740
1746
1741
Written to server build directory (`build/` by default):
1747
-
1748
1742
- `metafile.css.json`
1749
1743
- `metafile.js.json` (browser JS)
1750
1744
- `metafile.server.json` (server JS)
@@ -1842,7 +1836,6 @@
1842
1836
- built-in tls support ([#6483](https://github.com/remix-run/remix/pull/6483))
1843
1837
1844
1838
New options:
1845
-
1846
1839
- `--tls-key` / `tlsKey`: TLS key
1847
1840
- `--tls-cert` / `tlsCert`: TLS Certificate
1848
1841
@@ -2113,7 +2106,6 @@
2113
2106
```
2114
2107
2115
2108
The dev server will:
2116
-
2117
2109
- force `NODE_ENV=development` and warn you if it was previously set to something else
2118
2110
- rebuild your app whenever your Remix app code changes
2119
2111
- restart your app server whenever rebuilds succeed
- Remove single fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
229
228
230
229
- 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))
231
-
232
230
-`createCookie`
233
231
-`createCookieSessionStorage`
234
232
-`createMemorySessionStorage`
@@ -237,7 +235,6 @@
237
235
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)
238
236
239
237
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
240
-
241
238
-`createCookieFactory`
242
239
-`createSessionStorageFactory`
243
240
-`createCookieSessionStorageFactory`
@@ -645,12 +642,10 @@
645
642
- 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
@@ -645,12 +645,10 @@
645
645
- 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))
77
76
78
-
- server action revalidation opt out via $SKIP\_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
77
+
- server action revalidation opt out via $SKIP_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
79
78
80
79
- Properly escape interpolated param values in `generatePath()` ([#13530](https://github.com/remix-run/react-router/pull/13530))
81
80
@@ -124,7 +123,6 @@
124
123
- Remove dependency on `@types/node` in TypeScript declaration files ([#14059](https://github.com/remix-run/react-router/pull/14059))
125
124
126
125
- Fix types for `UIMatch` to reflect that the `loaderData`/`data` properties may be `undefined` ([#12206](https://github.com/remix-run/react-router/pull/12206))
127
-
128
126
- 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
129
127
- 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
130
128
- ⚠️ 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.
@@ -158,7 +156,6 @@
158
156
- \[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))
159
157
160
158
- \[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))
161
-
162
159
- The API has been renamed to `unstable_generateMiddlewareResponse` for clarity
163
160
- 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
164
161
- The `query` version of the API now has a signature of `(query: (r: Request) => Promise<StaticHandlerContext | Response>) => Promise<Response>`
@@ -804,7 +801,6 @@
804
801
```
805
802
806
803
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))
993
989
994
990
- 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))
995
-
996
991
- `createCookie`
997
992
- `createCookieSessionStorage`
998
993
- `createMemorySessionStorage`
@@ -1001,7 +996,6 @@ _No changes_
1001
996
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)
1002
997
1003
998
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
1004
-
1005
999
- `createCookieFactory`
1006
1000
- `createSessionStorageFactory`
1007
1001
- `createCookieSessionStorageFactory`
@@ -1157,7 +1151,6 @@ _No changes_
1157
1151
```
1158
1152
1159
1153
This initial implementation targets type inference for:
1160
-
1161
1154
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
1162
1155
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
1163
1156
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -1172,7 +1165,6 @@ _No changes_
1172
1165
```
1173
1166
1174
1167
Check out our docs for more:
1175
-
1176
1168
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
1177
1169
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
0 commit comments