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

@mainshum/scoreboard

v1.0.3

Published

Track game scores

Downloads

5

Readme

Scoreboard

Set of utilities to track scores for a set of games ⚽️

Api

Game initialization

  • createNewGame: (home: Team, away: Team, scoreHome?: number, scoreAway?: number) => Game

    Creates a new Game instance. If scoreHome or scoreAway are not passed, they default to 0.

Instance methods:

  • incrementHome: () => Game

    Increment home team score by 1, returns modified Game instance.

  • incrementAway: () => Game

    Increment away team score by 1, returns modified Game instance.

  • totalScore: () => number

    Home score + away score

  • containsTeam: (t: Team) => boolean

    Checks if team t is currently playing in this game

Game tracking

  • createScoreboard: () => Scoreboard

    Factory method which creates a new scoreboard instance and returns the game g that got passed.

Instance methods

  • startGame: (g: Game) => Game

    Inits new game. If any of the teams is already at play it throws an exception.

  • gamePending: (g: Game) => boolean

    Check if game is on (g passed by reference)

  • finishGame: (g: Game) => void

    Remove g from the scoreboard (g passed by reference). If no match found this method does nothing.

  • getSummary: () => Game[]

    Get a summary of games in progress ordered by their total score. The games with the same total score will be returned ordered by the most recently started match in the scoreboard.

Example

npm i @mainshum/scoreboard
import {createScoreboard, createNewGame} from '@mainshum/scoreboard';

const scoreboard = createScoreboard();
const game = createNewGame('Claude', 'Van Damme');

scoreboard.startGame(game);

game.incrementHome();
game.incrementAway();

console.log(scoreboard.getSummary()[0].gameStats); // { home: { name: 'Claude', score: 1 }, away: { name: 'Van Damme', score: 1 } }