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

health-star-rating

v1.1.0

Published

Calculates the ANZ health star rating of a food/beverage product given nutritional information

Downloads

17

Readme

health-star-rating

Calculate the ANZ health star rating of food given nutritional information

Use the web calculator here

Install

npm install health-star-rating

Usage

import { Attributes, Category, calculateHealthStarRating } from 'health-star-rating';

calculateHealthStarRating(Category.DairyFoods, {
  totalSugarsGrams: 33,
  energykJ: 1100,
  sodiumMilligrams: 100,
  saturatedFatGrams: 0,
});
//=> 1

calculateHealthStarRating(Category.NonDairyBeverages, {
  energykJ: 0,
  saturatedFatGrams: 7,
  sodiumMilligrams: 400,
  totalSugarsGrams: 0,
  attributes: [Attributes.ContainsFruitOrVegetable],
  percentageFruitVegetableNutLegume: 25,
});
//=> 4

calculateHealthStarRating(Category.OtherFoods, {
  saturatedFatGrams: 10.5,
  sodiumMilligrams: 400,
  totalSugarsGrams: 10.5,
  energykJ: 3100,
  fibreGrams: 7,
});
//=> 1.5

API

calculateHealthStarRating(category, nutritionalInformation)

returns

One of the following values will be returned:

0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5

category

Type: Category

These are the possible categories:

  • DairyBeverages
  • DairyFoods
    • "This category does not include ice cream or alternatives derived from cereals, nuts or seeds. These products fall in [OtherFoods]."
  • FatsOilsAndSpreads
    • Includes: edible oil, edible oil spreads, margarine, butter
  • Cheese
  • PlainWater
  • UnsweetenedFlavouredWater
    • May only contain -- carbon dioxide, flavouring substances (excluding sugar/sweeteners), mineral salts, safety/stability additives.
    • Must not include -- added sugars, sweeteners, colours, sodium, caffeine, quinine, or any other ingredient that contains energy.
  • UnprocessedFruitAndVegetables
    • Includes: "All whole fresh fruit (except coconut) and vegetables, fungi and legumes (except peanuts) as sold with no processing, plus these same products that have only been peeled, cut and/or surface treated and/or blanched and/or frozen (not dried), or canned without the addition of fat, sugars/sweeteners or salt."
    • Excludes: canned fruit and vegetables in juice and brine
  • NonDairyBeverages
  • Jellies
  • WaterBasedIcedConfection
  • OtherFoods: Any food that doesn't fit in the above categories.

nutritionalInformation

Type: object

Required keys:

  • energykJ (int): kilojoule content of the food per 100g or 100ml (note it's lowercase 'k' and uppercase 'J')
  • sodiumMilligrams (int): sodium content in mg per 100g or 100ml
  • saturatedFatGrams (float): saturated fat in grams per 100g or 100ml
  • totalSugarsGrams (float): sugar content in grams per 100g or 100ml

Optional keys:

  • percentageFruitVegetableNutLegume (int): Percentage from 0-100 of fruit, vegetable, nut or legume content. Improves the health star rating. Use with the attributes value set.
  • fibreGrams (float): dietary fibre content in grams per 100g or 100ml. Improves health star rating
  • proteinGrams (float): protein content in grams per 100g or 100ml. Improves health star rating
  • attributes (Attributes[]): If the food contains either non-concentrated fruit/vegetable/nuts/legumes sources or concentrated fruits or vegetables. percentageFruitVegetableNutLegume must be set if using this

Attributes

Possible values:

  • ContainsFruitOrVegetable
  • ContainsNutsOrLegumes

Acknowledgement

The calculations and health star rating information is taken from the https://healthstarrating.gov.au website