forked from imbytecat/fullstack-starter
- 将客户端导出改为私有常量,避免外部直接访问。 - 添加待办事项的完整 CRUD 操作,包括列表查询、创建、更新和删除功能,并使用 Zod 进行输入输出验证和 Drizzle ORM 操作数据库。 - 导出客户端和路由器模块的公共接口 - 添加路由配置,将 todo 处理程序注册到路由系统中。 - 删除已废弃的路由定义文件 - 删除待办事项相关路由和接口定义 - 删除未使用的 TodoSchema 模式定义以清理代码库。 - 将 Todo 路由重命名为复数形式并迁移数据获取与操作逻辑至 Orpc 客户端调用 - 将路由名称和路径从 `/todo` 更新为 `/todos`,并同步更新相关类型定义和引用。
28 lines
883 B
TypeScript
28 lines
883 B
TypeScript
import { createORPCClient } from '@orpc/client'
|
|
import { RPCLink } from '@orpc/client/fetch'
|
|
import type { RouterClient } from '@orpc/server'
|
|
import { createRouterClient } from '@orpc/server'
|
|
import { createTanstackQueryUtils } from '@orpc/tanstack-query'
|
|
import { createIsomorphicFn } from '@tanstack/react-start'
|
|
import { getRequestHeaders } from '@tanstack/react-start/server'
|
|
import { router } from '@/orpc/router'
|
|
|
|
const getORPCClient = createIsomorphicFn()
|
|
.server(() =>
|
|
createRouterClient(router, {
|
|
context: () => ({
|
|
headers: getRequestHeaders(),
|
|
}),
|
|
}),
|
|
)
|
|
.client((): RouterClient<typeof router> => {
|
|
const link = new RPCLink({
|
|
url: `${window.location.origin}/api/rpc`,
|
|
})
|
|
return createORPCClient(link)
|
|
})
|
|
|
|
const client: RouterClient<typeof router> = getORPCClient()
|
|
|
|
export const orpc = createTanstackQueryUtils(client)
|