import type { ApiResponse, Meal, Recipe } from "~/types/recipe"; import { apiResponseSchema } from "~/types/recipe"; export function parseRecipeData(data: ApiResponse): Recipe[] { return apiResponseSchema.parse(data).meals.map((meal: Meal) => { const ingredients: { name: string; quantity: string }[] = []; for (let i = 1; i <= 20; i++) { const ingredientName = meal[`strIngredient${i}`]; const ingredientQuantity = meal[`strMeasure${i}`]; if (ingredientName?.trim() && ingredientQuantity?.trim()) { ingredients.push({ name: ingredientName.trim(), quantity: ingredientQuantity.trim(), }); } } return { id: meal.idMeal, title: meal.strMeal, pictureUrl: meal.strMealThumb, videoUrl: meal.strYoutube, category: meal.strCategory, origin: meal.strArea, ingredients, instructions: meal.strInstructions, }; }); }