Skip to content
/ stv Public

STV (Single Transferable Vote) implementation in TypeScript

License

Notifications You must be signed in to change notification settings

Applifting/stv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Single Transferable Vote (STV) NPM library

TypeScript implementation of STV algorithm without any runtime dependencies.

Getting started

Add the library into your project using either:

npm add stv

or

yarn add stv

Import it into your project:

import { stv } from 'stv';

Usage

To evaluate election using STV, invoke the algorithm by calling the stv(opts) function:

const results = stv({
  seatsToFill: 2,
  candidates: ["Wonderwoman", "Superman", "Batman", "Iron Man"],
  votes: [
    {
      weight: 1,
      preferences: ["Wonderwoman", "Batman"]
    },
    {
      weight: 1,
      preferences: ["Iron Man", "Batman"]
    },
    {
      weight: 1,
      preferences: ["Iron Man"]
    }
  ],
  report: console.log
});

Which STV counting method is implemented?

Currently, the Scottish STV rules are implemented. There may be more variants in the future.

License 📜

The stv library is licensed under MIT license.