npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@hero-page/hero-recipe-utils

v1.0.0

Published

A set of utility functions for building recipe-related apps.

Downloads

9

Readme

This entire repository was created completely with AI, using the hero-ai-package-creator, which is open-source, uses GPT-4, and is written & maintained by Sam Chahine ❣️🧞‍♀️

hero-recipe-utils

A set of utility functions for building recipe-related apps.

Functions

convertUnits

Converts ingredient units from one measurement system to another (e.g., cups to grams). Handles basic units like cups, tablespoons, teaspoons, grams, ounces, and more. Provide unit conversion constants and conversion rates. Ensure correct handling of mixed units (e.g., 1 cup and 2 tablespoons) and fractions (1/2 cup). Handle basic units only; ignore extreme test cases with uncommon units or decimal places beyond two.

scaleIngredients

Scales ingredient quantities based on the desired number of servings. Calculate the new quantity of each ingredient and return an updated list of ingredients. Handle edge cases where quantity is zero, negative or not provided. Ensure that output has the same unit as input (e.g., 1 cup should remain as 1 cup).

parseIngredients

Extracts quantity, unit, and ingredient name from a given string with multiple formats (e.g., '1 cup sugar', '2 tablespoons olive oil', or '1/2 teaspoon salt'). Return an object with properties: quantity, unit, and name. Handle quantities in fractions, decimals or mixed format. Ignore test cases with uncommon formats or multiple units in one string (e.g., '1 cup and 3 tablespoons sugar').

generateShoppingList

Create a shopping list based on the input recipes. Summarize ingredients needed from multiple recipes, grouping by ingredient name and unit, and output a list with aggregated quantities. Handle test cases where recipes use different units for the same ingredient (e.g., one recipe has grams, the other has ounces). Combine ingredients with similar names using fuzzy-matching or a given threshold value.

cookTimeEstimator

Estimates the cook time based on the given ingredients and their quantities. Calculate an approximate time required for each ingredient (e.g., chopping vegetables, boiling pasta, etc.) based on default values, and return the sum of times. Handle edge cases with extreme quantities or negative values. Ignore cases with uncommon ingredients that do not have default cook times.

filterByAllergens

Filters out recipes that contain specified allergens. Provide a list of allergen ingredients to check each recipe's ingredients list for matching allergens. Handle variations in allergen names (e.g., 'milk' vs. 'whole milk') by ignoring case and special characters. Ignore edge cases with uncommon allergens or multiple allergen names in one string.

sortByDifficulty

Sorts a list of recipes based on their difficulty level (easy, medium, hard) or custom-defined ranking parameters. Apply a ranking system to determine which recipes are more difficult than others based on various factors like cook time, number of ingredients, and preparation steps. Ignore test cases with missing data, extreme values, or non-standard difficulty levels.

recommendSimilarRecipes

Recommends similar recipes based on common ingredients and preparation steps. Calculate a similarity score between recipes using their ingredients, serving size, and other factors. Return a list of recipes sorted by their similarity score. Handle test cases where recipes have very few common ingredients or extreme differences. Ignore missing data or cases with entirely dissimilar recipes.


Sam Chahine, at Hero

Tests for convertUnits

convertUnits

Tests for parseIngredients

parseIngredients

Tests for recommendSimilarRecipes

recommendSimilarRecipes

Tests for scaleIngredients

scaleIngredients

Tests for sortByDifficulty

sortByDifficulty

Tests for cookTimeEstimator

cookTimeEstimator

Tests for generateShoppingList

generateShoppingList

Tests for filterByAllergens

filterByAllergens