Routemetadata
Inofficiell Beta-översättning
Denna sida har översatts av PageTurner AI (beta). Inte officiellt godkänd av projektet. Hittade du ett fel? Rapportera problem →
Routemetadata gör att du kan lägga till en valfri, rutspecifik meta-egenskap som kommer att vara tillgänglig i alla parametrar för middleware-funktioner.
Skapa router med typad metadata
jsximport * as trpc from '@trpc/server';// [...]interface Meta {hasAuth: boolean}export const appRouter = trpc.router<Context, Meta>();
jsximport * as trpc from '@trpc/server';// [...]interface Meta {hasAuth: boolean}export const appRouter = trpc.router<Context, Meta>();
Exempel med autentiseringsinställningar per route
server.tstsximport * as trpc from '@trpc/server';// [...]interface Meta {hasAuth: boolean;}export const appRouter = trpc.router<Context, Meta>().middleware(async ({ meta, next, ctx }) => {// only check authorization if enabledif (meta?.hasAuth && !ctx.user) {throw new TRPCError({ code: 'UNAUTHORIZED' });}return next();}).query('hello', {meta: {hasAuth: false,},resolve({ ctx }) {return {greeting: `hello world`,};},}).query('protected-hello', {meta: {hasAuth: true,},resolve({ ctx }) {return {greeting: `hello world`,};},});
server.tstsximport * as trpc from '@trpc/server';// [...]interface Meta {hasAuth: boolean;}export const appRouter = trpc.router<Context, Meta>().middleware(async ({ meta, next, ctx }) => {// only check authorization if enabledif (meta?.hasAuth && !ctx.user) {throw new TRPCError({ code: 'UNAUTHORIZED' });}return next();}).query('hello', {meta: {hasAuth: false,},resolve({ ctx }) {return {greeting: `hello world`,};},}).query('protected-hello', {meta: {hasAuth: true,},resolve({ ctx }) {return {greeting: `hello world`,};},});