Have ideas to improve npm?Join in the discussion! »

    vpo

    2.0.0 • Public • Published

    VPO

    Build Status

    Value/path helper functions for javascript objects

    It's a set of simple functions that let you query or set values on your objects by a given string path.

    How to get it:

    Either:

    git clone git://github.com/unlucio/vpo.git
    

    or

    npm install vpo
    

    or

    bower install vpo
    

    Changelog:

    v 2.0 - better handling of null/undefined. The default returned value is now undefined istead of null if none is given.

    Examples:

    Given the following dummy object:

    {
        key1: {
            foo1: {
                bar1: 'bao',
                bar2: 'bao'
            },
            foo2: {
                bar2: 'bao'
            },
            foo3: {
                bar3: 'bao'
            }
        },
        key2: {
            foo1: {
                bar1: 'bao',
                bar2: 'bao'
            },
            foo2: {
                bar2: 'bao'
            },
            foo3: {
                bar3: 'bao'
            }
        }
    }

    setting a value:

    vpo.set(testObj, 'key1.foo2.bar2', 'resetBao');

    getting a value:

    vpo.get(testObj, 'key1.foo2.bar2');

    getting a value specifing a default return value:

    vpo.get(testObj, 'key1.foo2.barNoExists', 'default');

    getting a value from a list of possible paths:

    vpo.getSome(testObj, ['key5.foo2.bar2', 'key1.foo2.bar2']);

    getting a value from a list of possible paths specifing a default return value:

    vpo.getSome(testObj, ['key1.foo2.barNoExists', 'key1.foo12.barNoExists', 'key14.foo2.barNoExists'], 'default');

    getting parts of your objects based on paths:

    vpo.pick(testObj, ['key1.foo1.bar2', 'key1.foo4.bar2', 'key2.foo1']);
     
    /**
    will yield ==>
    {
        key1: {
            foo1: {
                bar2: 'bao'
            }
        },
        key2: {
            foo1: {
                bar1: 'bao',
                bar2: 'bao'
            }
        }
    }
    */

    I'm not sure who will ever be so "brave" to use it, but I'll leave it in since a dear friend of mine LOVES it :D

    For convenince you can attach VPO to Object's prototype and have all your objects with 2 new methods:

    vpo.setOnObjectPrototype();

    Install

    npm i vpo

    DownloadsWeekly Downloads

    87

    Version

    2.0.0

    License

    MIT

    Last publish

    Collaborators

    • avatar