diff --git a/playground/nuxt.config.ts b/playground/nuxt.config.ts index 3f4a0a0..9b4ff9a 100644 --- a/playground/nuxt.config.ts +++ b/playground/nuxt.config.ts @@ -5,7 +5,7 @@ import Module from '../src/module' export default defineNuxtConfig({ modules: [Module], runtimeConfig: { - baseURL: 'http://localhost:3000', + baseURL: '', }, typescript: { strict: true, diff --git a/src/module.ts b/src/module.ts index f34eb3c..2df4a06 100644 --- a/src/module.ts +++ b/src/module.ts @@ -16,7 +16,7 @@ export default defineNuxtModule({ configKey: 'trpc', }, defaults: { - baseURL: 'http://localhost:3000', + baseURL: '', endpoint: '/trpc', }, async setup(options, nuxt) { diff --git a/src/runtime/plugin.ts b/src/runtime/plugin.ts index 04d43c5..eef1154 100644 --- a/src/runtime/plugin.ts +++ b/src/runtime/plugin.ts @@ -10,14 +10,21 @@ export default defineNuxtPlugin((nuxtApp) => { const config = useRuntimeConfig().public.trpc const headers = useRequestHeaders() const otherHeaders = useClientHeaders() + + const baseURL = process.server ? '' : config.baseURL const client = trpc.createTRPCClient({ - url: `${config.baseURL}${config.endpoint}`, + url: `${baseURL}${config.endpoint}`, headers: () => { return { ...unref(otherHeaders), ...headers, } }, + fetch: (input, options) => + globalThis.$fetch.raw(input.toString(), options).then(response => ({ + ...response, + json: () => Promise.resolve(response._data), + })) }) nuxtApp.provide('client', client)