recipe-slicer v1.0.2
Recipe Slicer
The Recipe Slicer is a TypeScript algorithm to convert recipe strings into a list of Ingredients.
The goal of this project is to make a recipe manipulation algorithm with broader application than my app Sliced.
Install the recipe slicer with npm install recipe-slicer.
How to Use
class Recipe
The Recipe class is a top-level class with with two methods: set and scale. set takes a recipe string as an argument and sets the list of ingredients. scale takes in a constant as an argument and scales the recipe by that constant.
class Ingredient
The Ingredient class stores the amount, unit, and name of the ingredient. If an ingredient has a unit that supports ml conversion, the amount is in ml. Otherwise, the amount is the complete amount value.
The Ingredient class has a sort method that takes a one-word string as an argument and sorts it as an amount or unit. All other valid inputs are set as the name.
To display the Ingredient amount as a fraction, use Ingredient.display(). For decimals (converted to units when applicable), use Ingredient.display(false)
UNITS
utils
There are several utility functions that help with recipe parsing.
toNumber takes in a string, which could be a decimal, whole number, or fraction, and returns the numeric value. toFloat takes in a string and the index of the '/', converting the fraction to a numeric value.
formatFraction formats floats as fractions for display. This function rounds to the nearest '1/4' or '1/3' increment.