- Export
V2_HtmlMetaDescriptor
andV2_MetaFunction
types from runtime packages (#4943) - Updated dependencies:
@remix-run/server-runtime@1.10.0
- Updated dependencies:
@remix-run/server-runtime@1.9.0
- Updated dependencies:
@remix-run/server-runtime@1.8.2
- Updated dependencies:
@remix-run/server-runtime@1.8.1
- Importing functions and types from the
remix
package is deprecated, and all (#3284) exported modules will be removed in the next major release. For more details, see the release notes for 1.4.0 where these changes were first announced.
- Updated dependencies:
@remix-run/server-runtime@1.8.0
- Updated dependencies:
@remix-run/server-runtime@1.7.6
- Updated dependencies:
@remix-run/server-runtime@1.7.5
- Updated dependencies:
@remix-run/server-runtime@1.7.4
- Updated dependencies:
@remix-run/server-runtime@1.7.3
- Updated dependencies:
@remix-run/server-runtime@1.7.2
- Updated dependencies:
@remix-run/server-runtime@1.7.1
- We've added a new type:
SerializeFrom
. This is used to infer the (#4013) JSON-serialized return type of loaders and actions.
- Updated dependencies:
@remix-run/server-runtime@1.7.0
- Updated dependencies:
@remix-run/server-runtime@1.6.8
- Updated dependencies:
@remix-run/server-runtime@1.6.7
- Updated dependencies:
@remix-run/server-runtime@1.6.6
-
We enhanced the type signatures of
loader
/action
anduseLoaderData
/useActionData
to make it possible to infer the data type from return type of its related server function.To enable this feature, you will need to use the
LoaderArgs
type from@remix-run/cloudflare
instead of typing the function directly:- import type { LoaderFunction } from "@remix-run/cloudflare"; + import type { LoaderArgs } from "@remix-run/cloudflare"; - export const loader: LoaderFunction = async (args) => { - return json<LoaderData>(data); - } + export async function loader(args: LoaderArgs) { + return json(data); + }
Then you can infer the loader data by using
typeof loader
as the type variable inuseLoaderData
:- let data = useLoaderData() as LoaderData; + let data = useLoaderData<typeof loader>();
The API above is exactly the same for your route
action
anduseActionData
via theActionArgs
type.With this change you no longer need to manually define a
LoaderData
type (huge time and typo saver!), and we serialize all values so thatuseLoaderData
can't return types that are impossible over the network, such asDate
objects or functions. -
Updated dependencies
@remix-run/server-runtime@1.6.5