average-rating

2.0.4 • Public • Published

average-rating

Calculate average and scoring based on Wilson Score Equation

NPM CI test Coverage Status CodeQL

Google app on Google Play

Install & Usage

  • Node.js
npm i average-rating

# pnpm
pnpm i average-rating

# yarn
yarn add average-rating
// es6 module
import {
  score,
  rate,
  average
} from 'average-rating'

// CommonJS
const {
  score,
  rate,
  average
} = require('average-rating')

// or specify exactly path to CommonJS variant
const {
  score,
  rate,
  average
} = require('average-rating/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

Deno

// deno > 1.28
import {
  score,
  rate,
  average
} from 'npm:average-rating'

// deno < 1.28
import {
  score,
  rate,
  average
} from 'https://esm.sh/average-rating'

CDN

Currently ECMAScript modules work fine on almost browsers:

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

// 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
</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 {
  score,
  rate,
  average
} = window.AverageRating

// method call
</script>

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)

Package Sidebar

Install

npm i average-rating

Weekly Downloads

29

Version

2.0.4

License

MIT

Unpacked Size

18 kB

Total Files

12

Last publish

Collaborators

  • dongnd