Skip to content
Helps you code JavaScript at a boss level
JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs
.gitignore
LICENSE
README.md
boss.js
bower.json
example.js
jsDocToMarkdown.js
package.json
runtest.js
test.js

README.md

boss.js

All beta code is IE 9+ only

Helps you code JavaScript at a boss level. Provides a set of utilities intended to deal with JSs rough edges and provide close imitations of useful future Harmony proposals.

Install

Via NPM:

npm install boss.js

Via Bower:

bower install boss.js

Example

Returning the largest 2 numbers of a sent in array, without boss.js:

var twoLargest = function(range) {
    var largest = [Number.MIN_VALUE, Number.MIN_VALUE];

    if (range === undefined) {
        return largest;
    }

    range.forEach(function(number) {
        if (number > largest[0]) {
            largest[1] = largest[0];
            largest[0] = number;
        } else if (number > largest[1]) {
            largest[1] = number;
        }
    });

    return largest;
};

console.log(twoLargest());// [5e-324, 5e-324]
console.log(twoLargest([1]));// [1, 5e-324]
console.log(twoLargest([1, 2]));// [2, 1]
console.log(twoLargest([3, 1, 4, 2]));// [4, 3]

// If you want to do a clean print for example;
var values = twoLargest([3, 1, 4, 2]);
console.log('Returned', values[0], 'and', values[1]);

With boss.js the default replacement is eliminated and the final print is clearer:

var twoLargest = b.defaults([], function(range) {
    var largest = [Number.MIN_VALUE, Number.MIN_VALUE];

    range.forEach(function(number) {
        if (number > largest[0]) {
            largest[1] = largest[0];
            largest[0] = number;
        } else if (number > largest[1]) {
            largest[1] = number;
        }
    });

    return largest;
});

console.log(twoLargest());// [5e-324, 5e-324]
console.log(twoLargest([1]));// [1, 5e-324]
console.log(twoLargest([1, 2]));// [2, 1]
console.log(twoLargest([3, 1, 4, 2]));// [4, 3]

// Now the array positions can be named;
b.deconstruct(twoLargest([3, 1, 4, 2]), function(largest, secondLargest) {
    console.log('Returned', largest, 'and', secondLargest);
});

Driving Goals

  • Boss: The result of the below objectives.
  • Organized: In such a way that makes it easy to include only what you need.
  • Small: Doing the absolute minimum to achieve functionality.
  • Simple: Syntax should feel natural to you as a JS developer (without messing with Object and etc.)

This is an experiment into ways of improving my workflow and hopefully others. It will probably go through a lot of architecture transitions until I get a final vision. Finally, it is intended to complement popular utility libaries like underscore, not compete.

API

Located here.

Something went wrong with that request. Please try again.