It's almost time for a Christmas Table, but that's not the kind of tables I want to talk about today.
And this time there's no need to install a dependency: we'll touch upon built in console functionality that's ofter overlooked. I present to you console.table
Create a new file, e.g. main.ts
and paste the following code:
const recipes = [
{
name: "Roast Turkey",
ingredients: [
"1 whole turkey",
"salt",
"pepper",
"butter",
"herbs (rosemary, thyme, sage)",
"onion",
"carrot",
"celery",
],
instructions:
"Season the turkey with salt, pepper, and herbs. Stuff with onion, carrot, and celery. Roast at 350°F (175°C) for 3-4 hours or until internal temperature reaches 165°F (75°C).",
difficulty: "Hard",
time: "4-5 hours",
},
{
name: "Gingerbread Cookies",
ingredients: [
"2 1/4 cups flour",
"1 tsp baking soda",
"1 tsp ground ginger",
"1 tsp ground cinnamon",
"1/2 tsp ground cloves",
"1/2 tsp salt",
"3/4 cup unsalted butter",
"1 cup brown sugar",
"1 egg",
"1/4 cup molasses",
],
instructions:
"Mix dry ingredients. Beat butter and sugar until creamy, add egg and molasses. Combine wet and dry ingredients. Roll dough, cut shapes, and bake at 350°F (175°C) for 8-10 minutes.",
difficulty: "Medium",
time: "1 hour",
},
{
name: "Eggnog",
ingredients: [
"4 cups whole milk",
"1 cup heavy cream",
"6 large eggs",
"3/4 cup sugar",
"1/2 tsp nutmeg",
"1 tsp vanilla extract",
"1/2 cup rum or bourbon (optional)",
],
instructions:
"Whisk eggs and sugar. Heat milk and cream gently, then slowly add egg mixture. Cook until thickened. Stir in vanilla, nutmeg, and alcohol if using. Chill before serving.",
difficulty: "Easy",
time: "30 minutes + chilling time",
},
{
name: "Christmas Fruitcake",
ingredients: [
"2 cups mixed dried fruits",
"1 cup nuts (walnuts, almonds)",
"1 cup flour",
"1 tsp baking powder",
"1/2 tsp cinnamon",
"1/2 tsp nutmeg",
"1/2 cup brown sugar",
"1/2 cup butter",
"2 eggs",
],
instructions:
"Soak dried fruits in warm water or brandy. Cream butter and sugar, add eggs, and fold in dry ingredients and fruits. Bake at 300°F (150°C) for 2-3 hours.",
difficulty: "Medium",
time: "3-4 hours",
},
{
name: "Candy Cane Hot Chocolate",
ingredients: [
"2 cups milk",
"1/2 cup heavy cream",
"1/2 cup chocolate chips",
"2 tbsp cocoa powder",
"2 tbsp sugar",
"1 tsp vanilla extract",
"2 candy canes (crushed)",
],
instructions:
"Heat milk, cream, cocoa powder, and sugar. Stir in chocolate chips until melted. Add vanilla and crushed candy canes. Serve with whipped cream and extra candy cane sprinkles.",
difficulty: "Easy",
time: "15 minutes",
},
];
console.table(recipes, ["name", "difficulty", "time"]);
Run it with e.g. deno run ./main.ts
and enjoy a quick and well structured table with recipes overview:
deno run ./main.ts
┌───────┬────────────────────────────┬────────────┬──────────────────────────────┐
│ (idx) │ name │ difficulty │ time │
├───────┼────────────────────────────┼────────────┼──────────────────────────────┤
│ 0 │ "Roast Turkey" │ "Hard" │ "4-5 hours" │
│ 1 │ "Gingerbread Cookies" │ "Medium" │ "1 hour" │
│ 2 │ "Eggnog" │ "Easy" │ "30 minutes + chilling time" │
│ 3 │ "Christmas Fruitcake" │ "Medium" │ "3-4 hours" │
│ 4 │ "Candy Cane Hot Chocolate" │ "Easy" │ "15 minutes" │
└───────┴────────────────────────────┴────────────┴──────────────────────────────┘
Neat isn't it? This method works for object and arrays and without the second argument it would render all properties, which can result in a bit of a messy output:
Which is unfortunate, but in the end of the data, maybe if data table doesn't fit into a screen we could use another format of representing it, e.g. console.dir?
Liked the content and would love to have more of it all year long?
Top comments (0)