New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

object-cache-graph-thing

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

object-cache-graph-thing

A thing for making object traversals quicker

latest
Source
npmnpm
Version
0.1.1
Version published
Weekly downloads
12
-25%
Maintainers
1
Weekly downloads
 
Created
Source

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

Keywords

tree

FAQs

Package last updated on 01 Dec 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts