Git Product home page Git Product logo

boss.js's Introduction

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.

boss.js's People

Contributors

jacob-friesen avatar

Watchers

Łukasz Biedrycki avatar  avatar Maciej Marczyński avatar James Cloos avatar Zbigniew Pękala avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.