
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
object-cache-graph-thing
Advanced tools
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']);
import ObjectCache from 'object-cache-graph-thing';
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
FAQs
A thing for making object traversals quicker
The npm package object-cache-graph-thing receives a total of 12 weekly downloads. As such, object-cache-graph-thing popularity was classified as not popular.
We found that object-cache-graph-thing demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.