From 95f5478cdc3bdc59b6054687377a1305e04a28ca Mon Sep 17 00:00:00 2001 From: Robert Soriano Date: Fri, 28 Oct 2022 15:27:50 -0700 Subject: [PATCH] update server routes in playground --- playground/server/trpc/index.ts | 50 ++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/playground/server/trpc/index.ts b/playground/server/trpc/index.ts index fab7a96..90a81bd 100644 --- a/playground/server/trpc/index.ts +++ b/playground/server/trpc/index.ts @@ -1,7 +1,7 @@ -import * as trpc from '@trpc/server' -import type { inferAsyncReturnType } from '@trpc/server' +import { initTRPC } from '@trpc/server' import { z } from 'zod' import type { H3Event } from 'h3' +import type { inferAsyncReturnType } from '@trpc/server' const baseURL = 'https://jsonplaceholder.typicode.com' @@ -14,28 +14,34 @@ const TodoShape = z.object({ export type Todo = z.infer -export const router = trpc.router() - .query('getTodos', { - async resolve() { - return await $fetch(`${baseURL}/todos`) - }, - }) - .query('getTodo', { - input: z.number(), - async resolve(req) { - return await $fetch(`${baseURL}/todos/${req.input}`) - }, - }) - .mutation('addTodo', { - input: TodoShape, - async resolve(req) { - console.log(req.input) - return await $fetch(`${baseURL}/todos`, { +const t = initTRPC.context().create() + +// We explicitly export the methods we use here +// This allows us to create reusable & protected base procedures +export const middleware = t.middleware +export const router = t.router +export const publicProcedure = t.procedure + +export const appRouter = router({ + getTodos: publicProcedure.query(() => { + return $fetch(`${baseURL}/todos`) + }), + getTodo: publicProcedure + .input(z.number()) + .query((req) => { + return $fetch(`${baseURL}/todos/${req.input}`) + }), + addTodo: publicProcedure + .input(TodoShape) + .mutation((req) => { + return $fetch(`${baseURL}/todos`, { method: 'POST', body: req.input, }) - }, - }) + }), +}) + +export type AppRouter = typeof appRouter export async function createContext(event: H3Event) { // Create your context based on the request object @@ -50,4 +56,4 @@ export async function createContext(event: H3Event) { } } - type Context = inferAsyncReturnType +type Context = inferAsyncReturnType