diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e17027b
--- /dev/null
+++ b/README.md
@@ -0,0 +1,6 @@
+# tRPC-Nuxt
+
+[](https://bundlephobia.com/result?p=trpc-nuxt)
+[](https://www.npmjs.com/package/trpc-nuxt)
+
+End-to-end typesafe APIs with [tRPC.io](https://trpc.io/) in Nuxt applications.
diff --git a/playground/app.vue b/playground/app.vue
index 92a6fd4..5d0e327 100644
--- a/playground/app.vue
+++ b/playground/app.vue
@@ -1,6 +1,6 @@
- hello
+ {{ data.name }}
diff --git a/playground/server/fn/index.ts b/playground/server/fn/index.ts
index 811abf5..497dcdb 100644
--- a/playground/server/fn/index.ts
+++ b/playground/server/fn/index.ts
@@ -13,4 +13,20 @@ export const router = trpc
resolve: () => 'world',
})
+// optional
+export const createContext = () => {
+ // ...
+ return {
+ /** context data */
+ }
+}
+
+// optional
+export const responseMeta = () => {
+ // ...
+ return {
+ // { headers: ... }
+ }
+}
+
export type Router = typeof router
diff --git a/src/module.ts b/src/module.ts
index 8bbd882..b53815a 100644
--- a/src/module.ts
+++ b/src/module.ts
@@ -1,4 +1,4 @@
-import { dirname, join, resolve } from 'pathe'
+import { dirname, join } from 'pathe'
import { addServerHandler, defineNuxtModule } from '@nuxt/kit'
import fs from 'fs-extra'
@@ -31,9 +31,6 @@ export default defineNuxtModule({
)
})
- const srcDir = nuxt.options.srcDir
- const optionsPath = resolve(srcDir, 'server/fn/index.ts')
-
await fs.ensureDir(dirname(clientPath))
await fs.writeFile(clientPath, `
@@ -61,24 +58,12 @@ export default defineNuxtModule({
await fs.writeFile(handlerPath, `
import { createTRPCHandler } from 'trpc-nuxt/api'
import * as functions from '~/server/fn'
+
export default createTRPCHandler({
- router: functions.router
+ router: functions.router,
+ createContext: functions.createContext ?? undefined,
+ responseMeta: functions.responseMeta ?? undefined,
})
`)
-
- if (!fs.existsSync(optionsPath)) {
- await fs.writeFile(optionsPath, `
- // Generated by trpc-nuxt
- import * as trpc from '@trpc/server'
-
- export const router = trpc
- .router()
- .query('hello', {
- resolve: () => 'world',
- });
-
- export type Router = typeof router
- `.trimStart())
- }
},
})