test
This commit is contained in:
		| @@ -0,0 +1,48 @@ | ||||
| import { z } from "zod" | ||||
|  | ||||
| export async function getPokemonList({ limit = 10 }: { limit?: number }) { | ||||
|   try { | ||||
|     const response = await fetch( | ||||
|       `https://pokeapi.co/api/v2/pokemon?limit=${limit}` | ||||
|     ) | ||||
|     return z | ||||
|       .object({ | ||||
|         results: z.array(z.object({ name: z.string() })), | ||||
|       }) | ||||
|       .parse(await response.json()) | ||||
|   } catch (error) { | ||||
|     console.error(error) | ||||
|     return null | ||||
|   } | ||||
| } | ||||
|  | ||||
| export async function getPokemon(name: string) { | ||||
|   try { | ||||
|     const response = await fetch(`https://pokeapi.co/api/v2/pokemon/${name}`) | ||||
|  | ||||
|     if (!response.ok) { | ||||
|       throw new Error("Failed to fetch pokemon") | ||||
|     } | ||||
|  | ||||
|     return z | ||||
|       .object({ | ||||
|         name: z.string(), | ||||
|         id: z.number(), | ||||
|         sprites: z.object({ | ||||
|           front_default: z.string(), | ||||
|         }), | ||||
|         stats: z.array( | ||||
|           z.object({ | ||||
|             base_stat: z.number(), | ||||
|             stat: z.object({ | ||||
|               name: z.string(), | ||||
|             }), | ||||
|           }) | ||||
|         ), | ||||
|       }) | ||||
|       .parse(await response.json()) | ||||
|   } catch (error) { | ||||
|     console.error(error) | ||||
|     return null | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user