diff --git a/.changeset/bright-areas-film.md b/.changeset/bright-areas-film.md new file mode 100644 index 0000000..e8bd647 --- /dev/null +++ b/.changeset/bright-areas-film.md @@ -0,0 +1,5 @@ +--- +"create-better-t-stack": patch +--- + +optimize oRPC client dependencies by removing server dependency diff --git a/apps/cli/src/helpers/setup/api-setup.ts b/apps/cli/src/helpers/setup/api-setup.ts index 6887adb..7a92e59 100644 --- a/apps/cli/src/helpers/setup/api-setup.ts +++ b/apps/cli/src/helpers/setup/api-setup.ts @@ -54,11 +54,7 @@ export async function setupApi(config: ProjectConfig) { if (hasReactWeb) { if (api === "orpc") { await addPackageDependency({ - dependencies: [ - "@orpc/tanstack-query", - "@orpc/client", - "@orpc/server", - ], + dependencies: ["@orpc/tanstack-query", "@orpc/client"], projectDir: webDir, }); } else if (api === "trpc") { @@ -79,7 +75,6 @@ export async function setupApi(config: ProjectConfig) { "@tanstack/vue-query-devtools", "@orpc/tanstack-query", "@orpc/client", - "@orpc/server", ], projectDir: webDir, }); @@ -90,7 +85,6 @@ export async function setupApi(config: ProjectConfig) { dependencies: [ "@orpc/tanstack-query", "@orpc/client", - "@orpc/server", "@tanstack/svelte-query", ], projectDir: webDir, @@ -102,7 +96,6 @@ export async function setupApi(config: ProjectConfig) { dependencies: [ "@orpc/tanstack-query", "@orpc/client", - "@orpc/server", "@tanstack/solid-query", ], projectDir: webDir, @@ -123,11 +116,7 @@ export async function setupApi(config: ProjectConfig) { }); } else if (api === "orpc") { await addPackageDependency({ - dependencies: [ - "@orpc/tanstack-query", - "@orpc/client", - "@orpc/server", - ], + dependencies: ["@orpc/tanstack-query", "@orpc/client"], projectDir: nativeDir, }); } diff --git a/apps/cli/templates/api/orpc/native/utils/orpc.ts.hbs b/apps/cli/templates/api/orpc/native/utils/orpc.ts.hbs index 5cb5137..01a1aa2 100644 --- a/apps/cli/templates/api/orpc/native/utils/orpc.ts.hbs +++ b/apps/cli/templates/api/orpc/native/utils/orpc.ts.hbs @@ -1,9 +1,8 @@ import { createORPCClient } from "@orpc/client"; import { RPCLink } from "@orpc/client/fetch"; import { createTanstackQueryUtils } from "@orpc/tanstack-query"; -import type { RouterClient } from "@orpc/server"; import { QueryCache, QueryClient } from "@tanstack/react-query"; -import type { appRouter } from "../../server/src/routers"; +import type { AppRouterClient } from "../../server/src/routers"; {{#if auth}} import { authClient } from "@/lib/auth-client"; {{/if}} @@ -30,6 +29,6 @@ export const link = new RPCLink({ {{/if}} }); -export const client: RouterClient = createORPCClient(link); +export const client: AppRouterClient = createORPCClient(link); export const orpc = createTanstackQueryUtils(client); diff --git a/apps/cli/templates/api/orpc/web/nuxt/app/plugins/orpc.ts.hbs b/apps/cli/templates/api/orpc/web/nuxt/app/plugins/orpc.ts.hbs index 6385279..ab831df 100644 --- a/apps/cli/templates/api/orpc/web/nuxt/app/plugins/orpc.ts.hbs +++ b/apps/cli/templates/api/orpc/web/nuxt/app/plugins/orpc.ts.hbs @@ -1,6 +1,5 @@ import { defineNuxtPlugin, useRuntimeConfig } from '#app' -import type { RouterClient } from '@orpc/server' -import type { appRouter } from "../../../server/src/routers/index"; +import type { AppRouterClient } from "../../../server/src/routers/index"; import { createORPCClient } from '@orpc/client' import { RPCLink } from '@orpc/client/fetch' import { createTanstackQueryUtils } from "@orpc/tanstack-query"; @@ -24,7 +23,7 @@ export default defineNuxtPlugin(() => { }) - const client: RouterClient = createORPCClient(rpcLink) + const client: AppRouterClient = createORPCClient(rpcLink) const orpcUtils = createTanstackQueryUtils(client) return { diff --git a/apps/cli/templates/api/orpc/web/react/base/src/utils/orpc.ts.hbs b/apps/cli/templates/api/orpc/web/react/base/src/utils/orpc.ts.hbs index 280252c..7d735f5 100644 --- a/apps/cli/templates/api/orpc/web/react/base/src/utils/orpc.ts.hbs +++ b/apps/cli/templates/api/orpc/web/react/base/src/utils/orpc.ts.hbs @@ -3,8 +3,7 @@ import { RPCLink } from "@orpc/client/fetch"; import { createTanstackQueryUtils } from "@orpc/tanstack-query"; import { QueryCache, QueryClient } from "@tanstack/react-query"; import { toast } from "sonner"; -import type { appRouter } from "../../../server/src/routers/index"; -import type { RouterClient } from "@orpc/server"; +import type { AppRouterClient } from "../../../server/src/routers/index"; export const queryClient = new QueryClient({ queryCache: new QueryCache({ @@ -37,6 +36,6 @@ export const link = new RPCLink({ {{/if}} }); -export const client: RouterClient = createORPCClient(link) +export const client: AppRouterClient = createORPCClient(link) export const orpc = createTanstackQueryUtils(client) diff --git a/apps/cli/templates/api/orpc/web/solid/src/utils/orpc.ts.hbs b/apps/cli/templates/api/orpc/web/solid/src/utils/orpc.ts.hbs index 1561a43..ca885fc 100644 --- a/apps/cli/templates/api/orpc/web/solid/src/utils/orpc.ts.hbs +++ b/apps/cli/templates/api/orpc/web/solid/src/utils/orpc.ts.hbs @@ -2,8 +2,7 @@ import { createORPCClient } from "@orpc/client"; import { RPCLink } from "@orpc/client/fetch"; import { createTanstackQueryUtils } from "@orpc/tanstack-query"; import { QueryCache, QueryClient } from "@tanstack/solid-query"; -import type { appRouter } from "../../../server/src/routers/index"; -import type { RouterClient } from "@orpc/server"; +import type { AppRouterClient } from "../../../server/src/routers/index"; export const queryClient = new QueryClient({ queryCache: new QueryCache({ @@ -25,6 +24,6 @@ export const link = new RPCLink({ {{/if}} }); -export const client: RouterClient = createORPCClient(link); +export const client: AppRouterClient = createORPCClient(link); export const orpc = createTanstackQueryUtils(client); diff --git a/apps/cli/templates/api/orpc/web/svelte/src/lib/orpc.ts.hbs b/apps/cli/templates/api/orpc/web/svelte/src/lib/orpc.ts.hbs index ec965a1..d05d5e5 100644 --- a/apps/cli/templates/api/orpc/web/svelte/src/lib/orpc.ts.hbs +++ b/apps/cli/templates/api/orpc/web/svelte/src/lib/orpc.ts.hbs @@ -1,10 +1,9 @@ import { PUBLIC_SERVER_URL } from "$env/static/public"; import { createORPCClient } from "@orpc/client"; import { RPCLink } from "@orpc/client/fetch"; -import type { RouterClient } from "@orpc/server"; import { createTanstackQueryUtils } from "@orpc/tanstack-query"; import { QueryCache, QueryClient } from "@tanstack/svelte-query"; -import type { appRouter } from "../../../server/src/routers/index"; +import type { AppRouterClient } from "../../../server/src/routers/index"; export const queryClient = new QueryClient({ queryCache: new QueryCache({ @@ -26,6 +25,6 @@ export const link = new RPCLink({ {{/if}} }); -export const client: RouterClient = createORPCClient(link); +export const client: AppRouterClient = createORPCClient(link); export const orpc = createTanstackQueryUtils(client); diff --git a/apps/cli/templates/backend/server/server-base/src/routers/index.ts.hbs b/apps/cli/templates/backend/server/server-base/src/routers/index.ts.hbs index 1a75081..f0fe30b 100644 --- a/apps/cli/templates/backend/server/server-base/src/routers/index.ts.hbs +++ b/apps/cli/templates/backend/server/server-base/src/routers/index.ts.hbs @@ -1,5 +1,6 @@ {{#if (eq api "orpc")}} import { {{#if auth}}protectedProcedure, {{/if}}publicProcedure } from "../lib/orpc"; +import type { RouterClient } from "@orpc/server"; {{#if (includes examples "todo")}} import { todoRouter } from "./todo"; {{/if}} @@ -21,6 +22,7 @@ export const appRouter = { {{/if}} }; export type AppRouter = typeof appRouter; +export type AppRouterClient = RouterClient; {{else if (eq api "trpc")}} import { {{#if auth}}protectedProcedure, {{/if}}publicProcedure, diff --git a/apps/cli/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs b/apps/cli/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs index 03c3d2f..e1f92d4 100644 --- a/apps/cli/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs +++ b/apps/cli/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs @@ -7,9 +7,8 @@ import { link, orpc } from "@/utils/orpc"; import type { QueryClient } from "@tanstack/react-query"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; import { useState } from "react"; -import type { RouterClient } from "@orpc/server"; import { createTanstackQueryUtils } from "@orpc/tanstack-query"; -import type { appRouter } from "../../../server/src/routers"; +import type { AppRouterClient } from "../../../server/src/routers"; import { createORPCClient } from "@orpc/client"; {{/if}} {{#if (eq api "trpc")}} @@ -67,7 +66,7 @@ function RootComponent() { }); {{#if (eq api "orpc")}} - const [client] = useState>(() => createORPCClient(link)); + const [client] = useState(() => createORPCClient(link)); const [orpcUtils] = useState(() => createTanstackQueryUtils(client)); {{/if}}