remove asyncdata helpers

This commit is contained in:
Robert Soriano
2022-05-17 18:04:30 -07:00
parent f4a9d7e127
commit d3b99a6e72
6 changed files with 3 additions and 128 deletions

View File

@@ -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
}
`)

View File

@@ -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,
}
}