Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    allthethingspublic

    Build Status

    ALLTHETHINGS.JS

    ALLTHETHINGS.JS

    Let your array iterations read like actual sentences:

    var things = ['all', 'the', 'things'];
     
    function log(thing) {
        console.log(thing);
    }
     
    log.allThe(things);

    For no extra cost, you also get the 'fromThe' and 'inThe' aliases, for your grammatical needs:

    var proHackers = filterNoobs.fromThe(hackers);
    containsProHackers.inThe(hackers); // true

    And all for less than 1KB, with no dependencies*. Delicious.

    *Unless your browser is an antique. Then you need es5-shim.

    ALLTHETHINGS.JS allows you to sentencify the following array methods:

    Gimme gimme

    Node.js

    Install with: npm install allthethings

    require('allthethings');

    Browser

    Download the production version or the development version.

    forEach / map

    By default, 'allThe' performs a map on the array, which doubles as a forEach:

    forEach

    var things = ['all', 'the', 'things'];
     
    function log(thing) {
        console.log(thing);
    }
     
    log.allThe(things);

    map

    var numbers = [1,2,3];
     
    function triple(number) {
        return number * 3;
    }
     
    var multiplesOfThree = triple.allThe(numbers); // [3,6,9]

    filter

    If your named function starts with 'filter' or 'is', then a filter is performed.

    When filtering, it's idiomatic to use 'fromThe' instead of 'allThe':

    var numbers = [-2,-1,0,1,2];
     
    function filterNegatives(number) {
        return number >= 0;
    }
     
    filterNegatives.fromThe(numbers); // [0,1,2]
    var numbers = [-2,-1,0,1,2];
     
    function isPositive(number) {
        return number > 0;
    }
     
    isPositive.fromThe(numbers); // [1,2]

    reduce / reduceRight

    If your named function starts with 'reduce', 'calculate' or 'add', then a reduce is performed.

    If you add 'Right' to any of these, then a reduceRight is performed instead.

    When reducing, it's idiomatic to use 'fromThe' instead of 'allThe':

    Given the 'numbers' array:

    var numbers = [1,2,3];

    Any of these will work identically:

    function reduceTotal(a, b) {
        return a + b;
    }
     
    var total = reduceTotal.fromThe(numbers); // 6
    function calculateTotal(a, b) {
        return a + b;
    }
     
    var total = calculateTotal.fromThe(numbers); // 6
    function addTotal(a, b) {
        return a + b;
    }
     
    var total = addTotal.fromThe(numbers); // 6

    some

    If your named function starts with 'some', 'contains' or 'has', then a some is performed.

    When using 'some', it's idiomatic to use 'inThe' instead of 'allThe':

    var numbers = [-2,-1,0,1,2];
     
    function someNegatives(number) {
        return number < 0;
    }
     
    someNegatives.inThe(numbers); // true
    var numbers = [-2,-1,0,1,2];
     
    function containsNegatives(number) {
        return number < 0;
    }
     
    containsNegatives.inThe(numbers); // true
    var numbers = [-2,-1,0,1,2];
     
    function hasNegatives(number) {
        return number < 0;
    }
     
    hasNegatives.inThe(numbers); // true

    every

    If your named function starts with 'every' or 'all', then an every is performed.

    When using 'every', it's idiomatic to use 'inThe' instead of 'allThe':

    var numbers = [1,2,3,4,5];
     
    function everyNumberIsPositive(number) {
        return number > 0;
    }
     
    everyNumberIsPositive.inThe(numbers); // true
    var numbers = [1,2,3,4,5];
     
    function allPositive(number) {
        return number > 0;
    }
     
    allPositive.inThe(numbers); // true

    Elite hacker tips

    Aliased functions

    Assign a named function expression to a variable of a different name:

    var things = [false, true, false];
     
    var myAliasedFunction = function filter(thing) {
        return thing === true;
    };
     
    myAliasedFunction.allThe(things); // [true]

    Custom function name rules

    You can create new rules or override existing ones:

    In Node.js

    var allthethings = require('allthethings');
     
    allthethings.rules.filter = /foobar/;

    In the browser

    window.allthethings.rules.filter = /foobar/;

    Which allows:

    var numbers = [1,2,3,4];
     
    function foobar(number) {
        return number % 2 === 0;
    }
     
    // This now performs a filter:
    foobar.allThe(numbers); // [2,4]

    Contributing

    In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.

    License

    Copyright (c) 2012 Mark Dalgleish
    Licensed under the MIT license.

    Keywords

    none

    install

    npm i allthethings

    Downloadsweekly downloads

    24

    version

    0.0.1-alpha-8

    license

    none

    repository

    githubgithub

    last publish

    collaborators

    • avatar