Skip to content

Commit

Permalink
tRPC: enforce more separation of the runtime
Browse files Browse the repository at this point in the history
The build system was requiring (erroneously) some nodejs packages
when inside routers in the Edge route.
  • Loading branch information
enricoros committed Nov 21, 2023
1 parent cb4fdc5 commit c23b077
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 13 deletions.
2 changes: 1 addition & 1 deletion app/api/trpc-edge/[trpc]/route.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { fetchRequestHandler } from '@trpc/server/adapters/fetch';

import { appRouterEdge } from '~/server/api/trpc.router';
import { appRouterEdge } from '~/server/api/trpc.router-edge';
import { createTRPCFetchContext } from '~/server/api/trpc.server';

const handlerEdgeRoutes = (req: Request) =>
Expand Down
2 changes: 1 addition & 1 deletion app/api/trpc-node/[trpc]/route.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { fetchRequestHandler } from '@trpc/server/adapters/fetch';

import { appRouterNode } from '~/server/api/trpc.router';
import { appRouterNode } from '~/server/api/trpc.router-node';
import { createTRPCFetchContext } from '~/server/api/trpc.server';

const handlerNodeRoutes = (req: Request) =>
Expand Down
3 changes: 2 additions & 1 deletion src/common/util/trpc.client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import { createTRPCProxyClient, httpBatchLink, httpLink, loggerLink } from '@trp
import { createTRPCNext } from '@trpc/next';
import superjson from 'superjson';

import { type AppRouterEdge, type AppRouterNode } from '~/server/api/trpc.router';
import type { AppRouterEdge } from '~/server/api/trpc.router-edge';
import type { AppRouterNode } from '~/server/api/trpc.router-node';

import { getBaseUrl } from './urlUtils';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,10 @@ import { llmAnthropicRouter } from '~/modules/llms/transports/server/anthropic/a
import { llmOllamaRouter } from '~/modules/llms/transports/server/ollama/ollama.router';
import { llmOpenAIRouter } from '~/modules/llms/transports/server/openai/openai.router';
import { prodiaRouter } from '~/modules/prodia/prodia.router';
import { tradeRouter } from '~/modules/trade/server/trade.router';
import { ytPersonaRouter } from '../../apps/personas/ytpersona.router';

/**
* This is the primary router for your server.
*
* All routers added in /api/routers should be manually added here.
* Primary rooter, and will be sitting on an Edge Runtime.
*/
export const appRouterEdge = createTRPCRouter({
backend: backendRouter,
Expand All @@ -26,10 +23,5 @@ export const appRouterEdge = createTRPCRouter({
ytpersona: ytPersonaRouter,
});

export const appRouterNode = createTRPCRouter({
trade: tradeRouter,
});

// export type definition of API
export type AppRouterEdge = typeof appRouterEdge;
export type AppRouterNode = typeof appRouterNode;
export type AppRouterEdge = typeof appRouterEdge;
13 changes: 13 additions & 0 deletions src/server/api/trpc.router-node.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { createTRPCRouter } from './trpc.server';

import { tradeRouter } from '~/modules/trade/server/trade.router';

/**
* Secondary rooter, and will be sitting on an NodeJS Runtime.
*/
export const appRouterNode = createTRPCRouter({
trade: tradeRouter,
});

// export type definition of API
export type AppRouterNode = typeof appRouterNode;

0 comments on commit c23b077

Please sign in to comment.