Spaces:
Running
Running
| import { seederWrapper } from "seeder/helpers/seeder-wrapper"; | |
| import { IMeal, Meal } from "@common/models/meal.model"; | |
| import { dbStore } from "seeder/helpers/db-store"; | |
| import { MealType } from "@common/enums/meal-type.enum"; | |
| import { Ingredient } from "@common/models/ingredient.model"; | |
| export default seederWrapper(Meal, async () => { | |
| console.log('fetching ingredients ids...') | |
| const ingredientsIds = await Promise.all( | |
| dbStore.ingredientsNames.map( | |
| async name => { | |
| const ing = await Ingredient.findOne(({name})); | |
| return { | |
| name, | |
| _id: ing._id | |
| } | |
| } | |
| ) | |
| ) | |
| console.log('preping meals data...') | |
| const data = await Promise.all(dbStore.mealsDataset.map(async (mealJson) => ({ | |
| name: mealJson.Name, | |
| created_at: new Date(), | |
| image: mealJson.Images[0], | |
| ingredients: mealJson.RecipeIngredientParts.map(name => ingredientsIds.find(i => i.name === name)._id), | |
| calories: mealJson.Calories, | |
| carbs: mealJson.CarbohydrateContent, | |
| proteins: mealJson.ProteinContent, | |
| fats: mealJson.FatContent, | |
| type: mealJson.Category?.toLowerCase() as MealType, | |
| isDeleted: false, | |
| } satisfies Partial<IMeal>))); | |
| console.log('inserting meals...') | |
| await Meal.insertMany(data); | |
| }); | |