JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 18
  • Score
    100M100P100Q74386F
  • License ISC

A simple rolling average calculator

Package Exports

  • rolling-average
  • rolling-average/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (rolling-average) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Rolling Average

By Tyson Jones

A zero-dependency package that helps to calculate various types of numerical averages.

Installation

npm install rolling-average or pnpm install rolling-average

Usage

There are three average calculators that can be constructed with the RollingAverageFactory class.

1. Fixed Window - Calculates the average of a fixed number of samples

import { RollingAverageFactory } from "rolling-average";
const fixedWindow = RollingAverageFactory.fixedWindow(3);
fixedWindow.addSample(1);
fixedWindow.addSample(2);
fixedWindow.addSample(3);
fixedWindow.addSample(4);
console.log(fixedWindow.getAverage()); // Prints out 3

2. Time Window - Calculates the average of the samples added during a rolling time window specified in milliseconds.

import { RollingAverageFactory } from "rolling-average";
const fixedWindow = RollingAverageFactory.timeWindow(1000);
fixedWindow.addSample(1);
// Sleep for 200 ms
fixedWindow.addSample(2);
// Sleep for 200 ms
fixedWindow.addSample(3);
// Sleep for 200 ms
fixedWindow.addSample(4);
// Sleep for 600 ms
console.log(fixedWindow.getAverage()); // Prints out 3

3. Regular - Calculates the average of all samples.

import { RollingAverageFactory } from "rolling-average";
const fixedWindow = RollingAverageFactory.fixedWindow(3);
fixedWindow.addSample(1);
fixedWindow.addSample(2);
fixedWindow.addSample(3);
console.log(fixedWindow.getAverage()); // Prints out 2