forked from imbytecat/fullstack-starter
feat: 迁移数据库至 SQLite 并新增项目文档
- 将 Postgres 数据库替换为 SQLite - 并同步添加 README 文档以优化项目初始化流程
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
/**
|
||||
* ORPC 同构客户端
|
||||
*
|
||||
* 根据运行环境自动选择最优调用方式:
|
||||
* - SSR (服务端): 直接调用 router,无 HTTP 开销
|
||||
* - CSR (客户端): 通过 /api/rpc 端点 HTTP 调用
|
||||
*
|
||||
* 同时配置了 TanStack Query 集成,mutation 成功后自动刷新相关查询。
|
||||
*/
|
||||
import { createORPCClient } from '@orpc/client'
|
||||
import { RPCLink } from '@orpc/client/fetch'
|
||||
import { createRouterClient } from '@orpc/server'
|
||||
@@ -7,6 +16,12 @@ import { getRequestHeaders } from '@tanstack/react-start/server'
|
||||
import { router } from './router'
|
||||
import type { RouterClient } from './types'
|
||||
|
||||
/**
|
||||
* 创建同构 ORPC 客户端
|
||||
*
|
||||
* 服务端: 直接调用路由处理器
|
||||
* 客户端: 通过 HTTP 调用 /api/rpc 端点
|
||||
*/
|
||||
const getORPCClient = createIsomorphicFn()
|
||||
.server(() =>
|
||||
createRouterClient(router, {
|
||||
@@ -24,7 +39,23 @@ const getORPCClient = createIsomorphicFn()
|
||||
|
||||
const client: RouterClient = getORPCClient()
|
||||
|
||||
/**
|
||||
* ORPC + TanStack Query 工具
|
||||
*
|
||||
* 使用方式:
|
||||
* ```tsx
|
||||
* // 查询
|
||||
* const { data } = useSuspenseQuery(orpc.todo.list.queryOptions())
|
||||
*
|
||||
* // 变更
|
||||
* const mutation = useMutation(orpc.todo.create.mutationOptions())
|
||||
* mutation.mutate({ title: '新任务' })
|
||||
* ```
|
||||
*
|
||||
* 配置了自动缓存失效: 创建/更新/删除操作后自动刷新列表
|
||||
*/
|
||||
export const orpc = createTanstackQueryUtils(client, {
|
||||
// 配置 mutation 成功后自动刷新相关查询
|
||||
experimental_defaults: {
|
||||
todo: {
|
||||
create: {
|
||||
|
||||
Reference in New Issue
Block a user