Socket
Socket
Sign inDemoInstall

countjs

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

countjs

A small utility to count things


Version published
Weekly downloads
9
increased by200%
Maintainers
1
Weekly downloads
 
Created
Source

CountJS

Build Status

Count items and compare them against a reference

Installation

Simply install it via NPM (npm install countjs) and require it in your code:

var Counter = require('countjs')

var c = new Counter()

Usage

countjs is relatively simple -- just instantiate a counter and keep adding stuff to it:

var c = new Counter()

c.add('a')
c.add('a')
c.add('b')

Then you can get how many items are there in the counter:

c.get('a') // 2
c.get('b') // 1
c.get() // {a: 2, b: 1}

You can also specify a custom quantity to add:

c.add('a', {qty: 3}) // 2
c.get('a') // 3

And create a diff between counters:

var c1 = new Counter({a: 1})
var c2 = new Counter({b: 1})

c1.diff(c2) // {a: 1, b: 0}

You can also use "references": if an item has qty X in the reference, then your counter will not be able to add more than X qty of that item:

var ref = {a: 1, b: 2}
var c = new Counter({}, ref)

c.add('a') // true
c.add('a') // false
c.add('b', {qty: 3}) // false
c.add('b', {qty: 2}) // true
c.add('c') // false

c.get() // {a: 1, b: 2}

You can force the counter to accept the new value:

var ref = {a: 1}
var c = new Counter({}, ref)

c.add('a') // true
c.add('a') // false
c.add('a', {qty: 1, force: true}) // true
c.get() // {a: 2}

When using references, you can get a diff between the current counter and the reference. For example:

var ref = {a: 1}
var c = new Counter({}, ref)

c.add('a', {qty: 2, force: true}) // true
c.add('b', {qty: 3, force: true}) // true

c.diff() // {a: {mine: 2, other: 1, diff: 1}, b: {mine: 3, other: 0, diff: 3}}

Last but not least, you can get a full comparison between counters:

var c1 = new Counter({a: 1, b: 1, d: 3})
var c2 = new Counter({b: 2, c: 1, d: 3})

comparison = c1.compare(c2)
// {
//  a: mine 1, other 0
//  b: mine 1, other 2
//  c: mine 0, other 1
//  d: mine 3, other 3
// }

compare is, basically, a #diff() that also includes same values between counters.

Tests

Just run npm test and welcome to Greenland!

Keywords

FAQs

Package last updated on 05 Jan 2016

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