add useTRPCAsyncData composable

This commit is contained in:
Robert Soriano
2022-05-18 21:40:33 -07:00
parent b9d3a4942c
commit d28895cf5e
9 changed files with 129 additions and 52 deletions

View File

@@ -1,3 +1,4 @@
import { fileURLToPath } from 'url'
import { dirname, join } from 'pathe'
import { addServerHandler, defineNuxtModule } from '@nuxt/kit'
@@ -18,6 +19,9 @@ export default defineNuxtModule<ModuleOptions>({
trpcURL: '/api/trpc',
},
async setup(options, nuxt) {
const runtimeDir = fileURLToPath(new URL('./runtime', import.meta.url))
nuxt.options.build.transpile.push(runtimeDir)
const clientPath = join(nuxt.options.buildDir, 'trpc-client.ts')
const handlerPath = join(nuxt.options.buildDir, 'trpc-handler.ts')
@@ -29,6 +33,7 @@ export default defineNuxtModule<ModuleOptions>({
nuxt.hook('autoImports:extend', (imports) => {
imports.push(
{ name: 'useClient', from: clientPath },
{ name: 'useTRPCAsyncData', from: join(runtimeDir, 'composables') },
)
})
@@ -42,21 +47,14 @@ export default defineNuxtModule<ModuleOptions>({
url: '${options.baseURL}${options.trpcURL}',
})
const useClient = () => client
export {
useClient
}
export const useClient = () => client
`)
await fs.writeFile(handlerPath, `
import { createTRPCHandler } from 'trpc-nuxt/api'
import * as functions from '~/server/trpc'
export default createTRPCHandler({
router: functions.router,
...functions
})
export default createTRPCHandler(functions)
`)
},
})