Skip to content

@tmlmt/cooklang-parser / ShoppingList

Class: ShoppingList

Shopping List generator.

Usage

  • Create a new ShoppingList instance with an optional category configuration (see constructor)
  • Add recipes, scaling them as needed (see add_recipe())
  • Categorize the ingredients (see categorize())

Example

typescript
import * as fs from "fs";
import { ShoppingList } from @tmlmt/cooklang-parser;

const categoryConfig = fs.readFileSync("./myconfig.txt", "utf-8")
const recipe1 = new Recipe(fs.readFileSync("./myrecipe.cook", "utf-8"));
const shoppingList = new ShoppingList();
shoppingList.set_category_config(categoryConfig);
// Quantities are automatically calculated and ingredients categorized
// when adding a recipe
shoppingList.add_recipe(recipe1);

Constructors

Constructor

new ShoppingList(category_config_str?): ShoppingList

Creates a new ShoppingList instance

Parameters

category_config_str?

The category configuration to parse.

string | CategoryConfig

Returns

ShoppingList

Properties

categories?

optional categories: CategorizedIngredients

The categorized ingredients in the shopping list.


category_config?

optional category_config: CategoryConfig

The category configuration for the shopping list.


ingredients

ingredients: Ingredient[] = []

The ingredients in the shopping list.


recipes

recipes: AddedRecipe[] = []

The recipes in the shopping list.

Methods

add_recipe()

Call Signature

add_recipe(recipe, scaling?): void

Adds a recipe to the shopping list, then automatically recalculates the quantities and recategorize the ingredients.

Parameters
recipe

Recipe

The recipe to add.

scaling?

The scaling option for the recipe. Can be either a factor or a number of servings

{ factor: number; } | { servings: number; }

Returns

void

Call Signature

add_recipe(recipe, factor?): void

Adds a recipe to the shopping list, then automatically recalculates the quantities and recategorize the ingredients.

Parameters
recipe

Recipe

The recipe to add.

factor?

number

The factor to scale the recipe by.

Returns

void

Deprecated

since v2.0.3. Use the other call signature with scaling instead. Will be removed in v3


categorize()

categorize(): void

Categorizes the ingredients in the shopping list Will use the category config if any, otherwise all ingredients will be placed in the "other" category

Returns

void


remove_recipe()

remove_recipe(index): void

Removes a recipe from the shopping list, then automatically recalculates the quantities and recategorize the ingredients.s

Parameters

index

number

The index of the recipe to remove.

Returns

void


set_category_config()

set_category_config(config): void

Sets the category configuration for the shopping list and automatically categorize current ingredients from the list.

Parameters

config

The category configuration to parse.

string | CategoryConfig

Returns

void