# @barchart/common-js

[![AWS CodeBuild](https://codebuild.us-east-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiYjhPK3NyazNKNlo4QmQzblZnbFFuR2ljMUljdXlRWGp6MEtaWW1pREpBRndCSkk1MkZyUDJCdzZWcCsxbEU5NERuZFhTU0RKZG9NbStjbTFIa3JnRlI4PSIsIml2UGFyYW1ldGVyU3BlYyI6IkFtZFhHQ0NLV0lhUlBoaWUiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://github.com/barchart/common-js)
[![NPM](https://img.shields.io/npm/v/@barchart/common-js)](https://www.npmjs.com/package/@barchart/common-js)

A *public* library of JavaScript utilities — suitable for use in both Node.js and browser-based applications.

### Overview

#### Features

* Simple utilities (type checking, assertions, bit masking, etc)
* Data structures (decimals, days, enumerations, etc)
* Simple collections (queues, stacks, trees, etc)
* Specialized collections (priority queues, evicting lists, evicting maps, etc)
* Browse the code...

#### Companion Library

A companion library called [@barchart/common-node-js](https://github.com/barchart/barchart-common-node-js) contains utilities for exclusive use in Node.js environments (i.e. not suitable for use in web browsers).

### Development

#### Documentation

The code is documented with [JSDoc](http://usejsdoc.org/). This will be used as the basis for formal documentation (coming soon).

#### Package Managers

This library has been published as a *public* module to NPM as [@barchart/common-js](https://www.npmjs.com/package/@barchart/common-js).

```shell
npm install @barchart/common-js -S
```

#### Build

Modern JavaScript language features are used. Some browsers may still require polyfills.

#### License

This software is provided under the MIT license.