feat: createContext

This commit is contained in:
Justin Lin committed 2025-04-16 15:36:12 +08:00
1 parent 6326b84a60
commit 529869671c
3 files changed
+18 -8

No files matched your search

+2 -1
View File
@@ -19,6 +19,7 @@ import expiryRemovalScheduler from './containers/expiryChecker.js'
import setupTest from './utils/setupTest.js'
import logger from './utils/logger.js'
import { appRouter } from './routers/index.js'
import { createContext } from './trpc.js'
async function main() {
if (!config.secret) {
@@ -76,7 +77,7 @@ async function main() {
'/trpc',
trpcExpress.createExpressMiddleware({
router: appRouter,
// createContext,
createContext,
})
)
app.use(errorHandler)
+2 -2
View File
@@ -1,9 +1,9 @@
import { router, publicProcedure } from '../trpc.js'
export const appRouter = router({
userList: publicProcedure.query(async () => {
userList: publicProcedure.query(async (opts) => {
// Retrieve users from a datasource, this is an imaginary database
return 'hello'
return opts.ctx
}),
})
// Export type router type signature,
+14 -5
View File
@@ -1,9 +1,18 @@
import { initTRPC } from '@trpc/server'
/**
* Initialization of tRPC backend
* Should be done only once per backend!
*/
const t = initTRPC.create()
import { CreateNextContextOptions } from '@trpc/server/adapters/next'
export const createContext = async (opts: CreateNextContextOptions) => {
const { session, user, ip } = opts.req
return {
session,
user,
ip,
}
}
export type AppContext = Awaited<ReturnType<typeof createContext>>
const t = initTRPC.context<AppContext>().create()
/**
* Export reusable router and procedure helpers
* that can be used throughout the router