mirror of
https://github.com/ArthurDanjou/trpc-nuxt.git
synced 2026-01-25 01:10:37 +01:00
remove asyncdata helpers
This commit is contained in:
@@ -15,10 +15,6 @@ export default defineNuxtModule<ModuleOptions>({
|
||||
const clientPath = join(nuxt.options.buildDir, 'trpc-client.ts')
|
||||
const handlerPath = join(nuxt.options.buildDir, 'trpc-handler.ts')
|
||||
|
||||
nuxt.hook('config', (options) => {
|
||||
options?.build?.transpile?.push('trpc-nuxt/client')
|
||||
})
|
||||
|
||||
addServerHandler({
|
||||
route: '/trpc/*',
|
||||
handler: handlerPath,
|
||||
@@ -26,8 +22,6 @@ export default defineNuxtModule<ModuleOptions>({
|
||||
|
||||
nuxt.hook('autoImports:extend', (imports) => {
|
||||
imports.push(
|
||||
{ name: 'useTrpcQuery', from: clientPath },
|
||||
{ name: 'useLazyTrpcQuery', from: clientPath },
|
||||
{ name: 'useClient', from: clientPath },
|
||||
)
|
||||
})
|
||||
@@ -36,22 +30,15 @@ export default defineNuxtModule<ModuleOptions>({
|
||||
|
||||
await fs.writeFile(clientPath, `
|
||||
import * as trpc from '@trpc/client'
|
||||
import { createTRPCComposables } from 'trpc-nuxt/client'
|
||||
import type { router } from '~/trpc'
|
||||
|
||||
const client = trpc.createTRPCClient<typeof router>({
|
||||
url: process.browser ? '/trpc' : 'http://localhost:3000/trpc',
|
||||
})
|
||||
|
||||
const {
|
||||
useClientQuery,
|
||||
useLazyClientQuery,
|
||||
useClient
|
||||
} = createTRPCComposables<typeof router>(client)
|
||||
|
||||
const useClient = () => client
|
||||
|
||||
export {
|
||||
useClientQuery,
|
||||
useLazyClientQuery,
|
||||
useClient
|
||||
}
|
||||
`)
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
import { objectHash } from 'ohash'
|
||||
import type { TRPCClient } from '@trpc/client'
|
||||
import type { AnyRouter, inferProcedureInput, inferProcedureOutput } from '@trpc/server'
|
||||
import type { AsyncData, KeyOfRes, PickFrom, _Transform } from 'nuxt/dist/app/composables/asyncData'
|
||||
// @ts-expect-error: Resolved by Nuxt
|
||||
import { useAsyncData, useLazyAsyncData } from '#imports'
|
||||
|
||||
export function createTRPCComposables<
|
||||
Router extends AnyRouter,
|
||||
Client extends TRPCClient<Router> = TRPCClient<Router>,
|
||||
TQuery extends keyof Router['_def']['queries'] = keyof Router['_def']['queries'],
|
||||
>(
|
||||
client: Client
|
||||
): {
|
||||
useClientQuery: <
|
||||
TRouteKey extends TQuery,
|
||||
ProcedureInput = inferProcedureInput<Router['_def']['queries'][TRouteKey]>,
|
||||
ProcedureOutput = inferProcedureOutput<Router['_def']['queries'][TRouteKey]>,
|
||||
>(
|
||||
path: TRouteKey,
|
||||
input: ProcedureInput
|
||||
) => AsyncData<
|
||||
PickFrom<
|
||||
ProcedureOutput,
|
||||
KeyOfRes<_Transform<ProcedureOutput, ProcedureOutput>>
|
||||
>,
|
||||
true | Error
|
||||
>
|
||||
useLazyClientQuery: <
|
||||
TRouteKey extends TQuery,
|
||||
ProcedureInput = inferProcedureInput<Router['_def']['queries'][TRouteKey]>,
|
||||
ProcedureOutput = inferProcedureOutput<Router['_def']['queries'][TRouteKey]>,
|
||||
>(
|
||||
path: TRouteKey,
|
||||
input: ProcedureInput
|
||||
) => AsyncData<
|
||||
PickFrom<
|
||||
ProcedureOutput,
|
||||
KeyOfRes<_Transform<ProcedureOutput, ProcedureOutput>>
|
||||
>,
|
||||
true | Error
|
||||
>
|
||||
useClient: () => Client
|
||||
}
|
||||
|
||||
export function createTRPCComposables(client) {
|
||||
const useClientQuery = (...args) => {
|
||||
return useAsyncData(`trpc-${objectHash(args[0] + (args[1] ? JSON.stringify(args[1]) : ''))}`, () => client.query(...args))
|
||||
}
|
||||
|
||||
const useLazyClientQuery = (...args) => {
|
||||
return useLazyAsyncData(`trpc-${objectHash(args[0] + (args[1] ? JSON.stringify(args[1]) : ''))}`, () => client.query(...args))
|
||||
}
|
||||
|
||||
const useClient = () => client
|
||||
|
||||
return {
|
||||
useClientQuery,
|
||||
useLazyClientQuery,
|
||||
useClient,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user