mirror of
https://github.com/ArthurDanjou/trpc-nuxt.git
synced 2026-01-23 00:15:02 +01:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75980c0953 | ||
|
|
a6f61d404f | ||
|
|
e53d1be61e | ||
|
|
d152ebc7be | ||
|
|
f6daa2b7c3 | ||
|
|
7962c7f61e | ||
|
|
453845fb14 | ||
|
|
ee3ee485ba |
11
package.json
11
package.json
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "trpc-nuxt",
|
"name": "trpc-nuxt",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.2.8",
|
"version": "0.3.0",
|
||||||
"packageManager": "pnpm@7.5.0",
|
"packageManager": "pnpm@7.5.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "./dist/module.cjs",
|
"main": "./dist/module.cjs",
|
||||||
@@ -32,12 +32,12 @@
|
|||||||
"prepare": "nuxi prepare playground"
|
"prepare": "nuxi prepare playground"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nuxt/kit": "3.0.0-rc.9",
|
"@nuxt/kit": "3.0.0-rc.11",
|
||||||
"@trpc/client": "^9.27.2",
|
"@trpc/client": "^9.27.2",
|
||||||
"@trpc/server": "^9.27.2",
|
"@trpc/server": "^9.27.2",
|
||||||
"dedent": "^0.7.0",
|
"dedent": "^0.7.0",
|
||||||
"defu": "^6.0.0",
|
"defu": "^6.0.0",
|
||||||
"h3": "^0.7.10",
|
"h3": "^0.7.21",
|
||||||
"ohash": "^0.1.5",
|
"ohash": "^0.1.5",
|
||||||
"pathe": "^0.3.0",
|
"pathe": "^0.3.0",
|
||||||
"ufo": "^0.8.5"
|
"ufo": "^0.8.5"
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
"@types/dedent": "^0.7.0",
|
"@types/dedent": "^0.7.0",
|
||||||
"bumpp": "^7.2.0",
|
"bumpp": "^7.2.0",
|
||||||
"eslint": "^8.14.0",
|
"eslint": "^8.14.0",
|
||||||
"nuxt": "3.0.0-rc.9",
|
"nuxt": "3.0.0-rc.11",
|
||||||
"pnpm": "^7.5.0",
|
"pnpm": "^7.5.0",
|
||||||
"trpc-nuxt": "workspace:*",
|
"trpc-nuxt": "workspace:*",
|
||||||
"zod": "^3.16.0"
|
"zod": "^3.16.0"
|
||||||
@@ -59,8 +59,5 @@
|
|||||||
"rules": {
|
"rules": {
|
||||||
"no-console": "warn"
|
"no-console": "warn"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"volta": {
|
|
||||||
"node": "16.14.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import Module from '../src/module'
|
|||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
modules: [Module],
|
modules: [Module],
|
||||||
runtimeConfig: {
|
runtimeConfig: {
|
||||||
baseURL: 'http://localhost:3000',
|
baseURL: '',
|
||||||
},
|
},
|
||||||
typescript: {
|
typescript: {
|
||||||
strict: true,
|
strict: true,
|
||||||
|
|||||||
1016
pnpm-lock.yaml
generated
1016
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -16,7 +16,7 @@ export default defineNuxtModule<ModuleOptions>({
|
|||||||
configKey: 'trpc',
|
configKey: 'trpc',
|
||||||
},
|
},
|
||||||
defaults: {
|
defaults: {
|
||||||
baseURL: 'http://localhost:3000',
|
baseURL: '',
|
||||||
endpoint: '/trpc',
|
endpoint: '/trpc',
|
||||||
},
|
},
|
||||||
async setup(options, nuxt) {
|
async setup(options, nuxt) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import * as trpc from '@trpc/client'
|
import * as trpc from '@trpc/client'
|
||||||
import { unref } from 'vue'
|
import { unref } from 'vue'
|
||||||
|
import { FetchError } from 'ohmyfetch'
|
||||||
import { useClientHeaders } from './client'
|
import { useClientHeaders } from './client'
|
||||||
import { defineNuxtPlugin, useRequestHeaders, useRuntimeConfig } from '#app'
|
import { defineNuxtPlugin, useRequestHeaders, useRuntimeConfig } from '#app'
|
||||||
import type { router } from '~/server/trpc'
|
import type { router } from '~/server/trpc'
|
||||||
@@ -10,14 +11,28 @@ export default defineNuxtPlugin((nuxtApp) => {
|
|||||||
const config = useRuntimeConfig().public.trpc
|
const config = useRuntimeConfig().public.trpc
|
||||||
const headers = useRequestHeaders()
|
const headers = useRequestHeaders()
|
||||||
const otherHeaders = useClientHeaders()
|
const otherHeaders = useClientHeaders()
|
||||||
|
|
||||||
|
const baseURL = process.server ? '' : config.baseURL
|
||||||
const client = trpc.createTRPCClient<AppRouter>({
|
const client = trpc.createTRPCClient<AppRouter>({
|
||||||
url: `${config.baseURL}${config.endpoint}`,
|
url: `${baseURL}${config.endpoint}`,
|
||||||
headers: () => {
|
headers: () => {
|
||||||
return {
|
return {
|
||||||
...unref(otherHeaders),
|
...unref(otherHeaders),
|
||||||
...headers,
|
...headers,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
fetch: (input, options) =>
|
||||||
|
globalThis.$fetch.raw(input.toString(), options)
|
||||||
|
.catch((e) => {
|
||||||
|
if (e instanceof FetchError && e.response)
|
||||||
|
return e.response
|
||||||
|
|
||||||
|
throw e
|
||||||
|
})
|
||||||
|
.then(response => ({
|
||||||
|
...response,
|
||||||
|
json: () => Promise.resolve(response._data),
|
||||||
|
})),
|
||||||
})
|
})
|
||||||
|
|
||||||
nuxtApp.provide('client', client)
|
nuxtApp.provide('client', client)
|
||||||
|
|||||||
Reference in New Issue
Block a user