object-cache-graph-thing

    0.1.1 • Public • Published

    object-cache-graph-thing Build Status npm version

    A thing for making object traversals quicker

    Object traversals are slow, recursion is not fun, and waiting 10s for a page to load because you have to parse a JSON blob 17 times is terrible. This tries to fix some of that.

    Instead of trying ot recursively search an object to find all children that match a pattern, let's only search it once, construct a graph of all instances of the thing we care about, and manipulate that graph.

    Example:

    import ObjectCache from 'object-cache-graph-thing';
     
    const objectThatICareAbout = {
        a: [
            { foo: true },
            { foo: false, c: { foo: true } }
        ]
        b: { foo: true }
    }
     
    // Find all objects that have a property `foo`
    // The predicate function returns what to store for a given path in the object
    // If a falsy value is returned, then that path is ignored and not cached.
    const predicate = (testObj) => _.isObject(testObj) && _.has(testObj, 'foo') && foo
     
    const cache = new ObjectCache(objectThatICareAbout, predicate);
     
     
    // Get all the paths where `foo` is a prop
    cache.getPaths(); // [ ['a', 0], ['a', 1], ['a', 1, 'c'], ['b'] ]
     
    // Get a sub-graph relative to child
    // same as new `ObjectCache(objectThatICareAbout.a, predicate)`, without the overhead of parsing again
    cache.getCacheForPath(['a']);
     

    API

    import ObjectCache from 'object-cache-graph-thing';

    ObjectCache instances

    Methods

    ObjectCache.prototype.constructor(seedObject : Object, predicate : Function)

    Constructs a new ObjectCache instance

    ObjectCache.prototype.getCacheForValue(val : Any)

    Create a new ObjectCache instance for the given value

    ObjectCache.prototype.getCacheForPath(path: Array)

    Create a new ObjectCache instance for the given subtree

    ObjectCache.prototype.getPaths()

    Get all the current paths in the tree

    ObjectCache.prototype.getValues()

    Get all the current values in the tree

    Install

    npm i object-cache-graph-thing

    DownloadsWeekly Downloads

    1

    Version

    0.1.1

    License

    Beerware

    Unpacked Size

    16.6 kB

    Total Files

    7

    Last publish

    Collaborators

    • adierkens