boardwalk

    0.0.2 • Public • Published

    Description

    Boardwalk is a lightweight utility for rich operations with Javascript object properties.

    Installation

    npm install boardwalk
    

    Examples

    • Find intersection of two rich objects:
    /* First example object. */
    var object1 = {
        owner: {
            first_name: 'John',
            last_name: 'Adams'
        },
        location: {
            city: 'Philadelphia',
            state: 'Pennsylvania'
        }
    };
     
    /* Second example object. */
    var object2 = {
        owner: {
            first_name: 'Samuel',
            last_name: 'Adams'
        },
        location: {
            city: 'Philadelphia',
            state: 'Pennsylvania'
        }
    };
     
    /* Pass in objects as an array. */
    var result = boardwalk.intersect([object1, object2]);
     
    console.log(result);
    /* Result object. */
    {
        owner: {
            last_name: 'Adams'
        },
        location: {
            city: 'Philadelphia',
            state: 'Pennsylvani'
        }
    }
    • Find intersection of multiple objects
    var object1 = {
        owner: {
            first_name: 'John',
            last_name: 'Adams'
        }
    };
     
    var object2 = {
        owner: {
            first_name: 'John',
            last_name: 'Kennedy'
        }
    };
     
    var object3 = {
        owner: {
            first_name: 'John',
            last_name: 'Tyler'
        }
    };
     
    var object4 = {
        owner: {
            first_name: 'Ronald',
            last_name: 'Reagan'
        }
    };
     
    var result = boardwalk.intersect([object1, object2, object3, object4]);
     
    /* Result object. */
    {
        owner: {
            first_name: 'John'
        }
    }
    • Find intersection between arrays:
    /* First example array. */
    var array1 = ['abc', 'def', 'ghi'];
     
    var array2 = ['def', 'jkl', 'mno'];
     
    var result = boardwalk.intersect([array1, array2]);
     
    /* Result array. */
    ['def']
    • Find intersection between complex objects:
    /* First example object. */
    var object1 = {
        owner: {
            first_name: 'Theodore',
            last_name: 'Roosevelt',
            children: ['John', 'Jane', 'Jack', { name: 'Jill' }]
        }
    };
     
    var object2 = {
        owner: {
            first_name: 'Franklin',
            last_name: 'Roosevelt',
            children: ['Jane', { name: 'Jill' }]
        }
    };
     
    var result = boardwalk.intersect([object1, object2]);
     
    /* Result object. */
    {
        owner: {
            last_name: 'Roosevelt',
            children: ['Jane', { name: 'Jill' }]
        }
    }
    • Pass a generic property that will match wherever it is found in object graphs:
    var object1 = {
        owner: {
            first_name: 'George',
            last_name: 'Washington'
        }
    };
     
    var object2 = {
        owner: {
            first_name: 'George',
            last_name: 'Bush'
        }
    };
     
    var options = { generic: 'Washington' };
     
    var result = boardwalk.intersect([object1, object2], options);
     
    /* Result object. */
    {
        owner: {
            first_name: 'George',
            last_name: 'Washington' // Generic match
        }
    }

    API

    Helper functions

    • isArray(item) - Utility function to determine if item is an Array.

    • isObject(item) - Utility function to determine if item is an Object.

    • isEmpty(object) - Utility function to determine if object is empty.

    Object handling functions

    • intersect(items, options) - Utility function to determine the common properties of two items.

    • resolve(path, object) - Utility function to resolve a deep object property.

    • set(path, object, value) - Utility function to set a deep object property.

    Keywords

    none

    Install

    npm i boardwalk

    DownloadsWeekly Downloads

    1

    Version

    0.0.2

    License

    none

    Last publish

    Collaborators

    • ilmatic