Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

average-rating

Package Overview
Dependencies
Maintainers
1
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

average-rating

Calculate average score and rating based on Wilson Score Equation

  • 2.0.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
52
increased by30%
Maintainers
1
Weekly downloads
 
Created
Source

average-rating

Calculate average and scoring based on Wilson Score Equation

NPM CI test Coverage Status CodeQL JavaScript Style Guide

Google app on Google Play

Setup

  • Node.js

    npm i average-rating
    
    # pnpm
    pnpm i average-rating
    
    # yarn
    yarn add average-rating
    
  • CDN

Usage

Node.js:

import {
  score,
  rate,
  average
} from 'average-rating'

// with CommonJS environment
// const { score, rate, average } = require('feed-reader/dist/cjs/average-rating.js')

score(80, 20) // => 0.71
average([134055, 57472, 143135, 365957, 1448459]) // => 4.4
rate([134055, 57472, 143135, 365957, 1448459]) // => 0.84
Note:

Since Node.js v14, ECMAScript modules have became the official standard format. Just ensure that you are using module system and enjoy with ES6 import/export syntax.

Browsers:

Currently ECMAScript modules work fine on almost browsers:

<script type="module">
import { average } from 'https://unpkg.com/average-rating/dist/average-rating.esm.js'

average([134055, 57472, 143135, 365957, 1448459])
</script>

With outdated browsers, we can use traditional way:

<script type="text/javascript" src="https://unpkg.com/average-rating/dist/average-rating.min.js"></script>

<script>
const { average } = window.AverageRating
average([134055, 57472, 143135, 365957, 1448459])
</script>

Example:

// get Winson score for a pair of (Positive, Negative) voting
score(0, 1000) // --> 0
score(1000, 0) // --> 0.96
score(1000, 1000) // --> 0.48

// from 1 to 5 stars
const rating = [134055, 57472, 143135, 365957, 1448459]
rate(rating) // --> 0.84

// calculate average
average(rating) // --> 4.4

APIs

.score(Number positive, Number negative)

Return a value from 0 to 1.

Used for the systems of Positive/Negative rating, such as the videos on YouTube, the answers on StackOverflow, etc. In which, each of item can be voted as good or bad, like or dislike or something like that.

.rate(Array ratings)

Return a value from 0 to 1.

Used for the systems of 5 rating levels, such as the applications on Google Play store, the books on Amazon, etc. In which, each of item can be voted as one of value in the range of 1 to 5 stars.

Update
  • Since v1.1.5, this rate method accepts custom range of ratings. 5 or more values are OK.
const input = [3, 4, 2, 6, 12, 46, 134, 213, 116, 91, 45, 15, 58, 96, 1654] // 15 values
rate(input) // => 0.85

rate([3, 4, 2, 6, 12, 46, 134, 213, 116, 91]) // => 0.74

.average(Array ratings)

Return a value from 0 to 5.

Calculate normal average value for the systems of 5 rating levels.

Test

git clone https://github.com/ndaidong/average-rating.git
cd average-rating
npm install
npm test

License

The MIT License (MIT)

Keywords

FAQs

Package last updated on 03 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc