int

introspected

Introspection for serializable arrays and JSON friendly objects.

Showing:

Popularity

Downloads/wk

11

GitHub Stars

73

Maintenance

Last Commit

3yrs ago

Contributors

2

Package

Dependencies

0

Size (min+gzip)

1.1KB

License

ISC

Type Definitions

Tree-Shakeable

No?

Categories

Readme

Introspected

Build Status Coverage Status donate

Medium presentation post


If you'd like to be notified about any possible change that could happen to a JSON compatible model / data / object / array / structure, including the possibility to retrieve the exact full path of the object that changed and eventually walk through it, you've reached your destination.

const data = Introspected(
  // any object or JSON compatible structure
  // even with nested properties, objects, arrays
  JSON.parse('{}'),
  (root, path) => {
    // the root object that changed
    console.log(root);
    // the path that just changed
    console.log(path);
  }
);

// now try the following in console
data.a.b.c.d.e.f.g = 'whatever';
data.array.value = [1, 2, 3];
data.array.value.push(4);
// see all notifications about all changes 🎉

JSON.stringify(data);
// {"a":{"b":{"c":{"d":{"e":{"f":{"g":"whatever"}}}}}},"array":{"value":[1,2,3,4]}}

API

  • Introspected(objectOrArray[, callback]) create a new Introspected object capable of having infinite depth without ever throwing errors
  • Introspected.observe(objectOrArray, callback) crate a Introspected with a notifier per each change, or set a notifier per each change to an existent Introspected object
  • Introspected.pathValue(objectOrArray, path) walk through an object via a provided path. A path is an Array of properties, it is usually the one received through the notifier whenever a Introspected object is observed.

Compatibility

Any spec compliant ES2015 JavaScript engine.

(that means native WeakMap, Proxy and Symbol.toPrimitive too)

Live test page

Working: NodeJS 6+, Chrome, Safari, GNOME Web, Edge, Firefox, Samsung Internet (Chrome 51)

Not there yet: UC Browser (WebKit 534)

ISC License

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial