---
changelog:
  category: Prerelease
  version: 0.1.0-beta.24
date: '2026-10-03T14:04:11Z'
seo:
  description: >-
    core: Simplify generateContractFromType to work without providing filePath
    and exportName. filePath remains as fallback option (38a1e07) core, express…
title: v0.1.0-beta.24
type: changelog
---
core:
- Simplify generateContractFromType to work without providing filePath and exportName. filePath remains as fallback option ([38a1e07](https://github.com/rest-rpc/rest-rpc/commit/38a1e07))

core, express, fastify, fetch, hono, node, server, tanstack-query:
- Type helpers accept a route tree as well as a single route and infer a matching tree of types, so one exported type can be indexed per route: `InferServerRequest<typeof routes>["todos"]["create"]`. This applies to `InferClientRequest`, `InferClientResponse`, `InferServerRequest`, `InferServerResponse`, the adapter `InferServerHandler`, and the TanStack Query `Infer*` helpers. Add `InferClientStreamData` to `@rest-rpc/core`, which infers the `data` of each event received from a streaming route without the `SseEvent` wrapper. ([fec6317](https://github.com/rest-rpc/rest-rpc/commit/fec6317))

express, fastify, fetch, hono, node, server:
- Rename the adapter `RouteHandler` type to `InferServerHandler` to match the `Infer*` style of the core helpers. `InferServerHandler` now expects a plain return value for `.output()` routes instead of a status envelope. Remove `RouteRequest` and `RouteErrors` from the adapter roots: use `InferServerRequest` for the validated request, `Parameters<InferServerHandler<typeof route>>[0]` for the full handler argument, and `Extract<InferServerResponse<typeof route>, { status: 404 }>` for specific status responses. ([fec6317](https://github.com/rest-rpc/rest-rpc/commit/fec6317))

fetch, node:
- Move adapter building blocks out of the package roots. `createFetchResponse` and `deserializeRequestBody` are now exported from `@rest-rpc/fetch/adapter` (replacing the `@rest-rpc/fetch/deserializeRequestBody` subpath), and `createRequestSignal`, `parseRequestTarget`, `createNodeResponseStream`, `writeNodeResponse`, `writeStreamResponse`, and `nodeBodyCodecs` from `@rest-rpc/node/adapter`. Both roots now export `InferServerHandler` like the other adapters, no longer export the `ImplicitResponse*`/`ServerFirst*` types, and `@rest-rpc/fetch` exports `FetchRouteHandlerResult`. ([fec6317](https://github.com/rest-rpc/rest-rpc/commit/fec6317))

tanstack-query:
- Rename the TanStack Query type helpers to match the `Infer*` style of the core helpers: `RouteQueryData` → `InferQueryData`, `RouteQueryError` → `InferQueryError`, `RouteMutationVariables` → `InferMutationVariables`, `RouteInfiniteQueryData` → `InferInfiniteQueryData`, and `RouteStreamedQueryData` → `InferStreamedQueryData`. ([fec6317](https://github.com/rest-rpc/rest-rpc/commit/fec6317))
