Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bigpipe/propget
Use dot notation to get properties from deeply nested object and array structures.
https://github.com/bigpipe/propget
Last synced: 1 day ago
JSON representation
Use dot notation to get properties from deeply nested object and array structures.
- Host: GitHub
- URL: https://github.com/bigpipe/propget
- Owner: bigpipe
- License: mit
- Created: 2015-06-22T11:57:27.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-01-02T16:43:29.000Z (almost 8 years ago)
- Last Synced: 2024-03-15T07:50:00.087Z (8 months ago)
- Language: JavaScript
- Size: 3.91 KB
- Stars: 4
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# propget
Propget is a small helper utility for finding values/keys in deeply nested
objects without having to worry about undefined properties and what not. It uses
a human readable dot based notation to find items in your object or array.## Installation
Just install it through npm, like you do with the all your code:
```
npm install --save propget
```It doesn't use any fancy node.js magic or ES6 so it should be good to go for
browser usage as well using something as browserify.## Usage
Using the module is super simple. We export the `propget` method as default
function:```js
var propget = require('propget');
```The function accepts the following arguments:
- `object`, data structure that we need to walk.
- `string`, dot notated string for deeply nested object access.
- `..`, rest arguments that will be used for optional function calls.So accessing a complex data structure can be as easy as this:
```js
'use strict';var prop = require('propget')
, data = { hello: 'world', yo: { deeply: ['nested', 'arrays'] } };prop(data, 'hello'); // world
prop(data, 'yo.deeply.1'); // arrays
prop(data, 'yo.deeply.nested.unknown.keys'); // undefined
```#### Function execution
Of one the unique functions of this module is that it allows you to execute
functions that are inside data structure. We can then re-use the result of the
function and walk it further.```js
data = {
hello: {
world: function () {
return {
hi: 'hello'
};
}
}
};prop(data, 'hello.world().hi') // hello
```But in addition to simple function execution we can also call these functions
with arguments. We automatically use the additionally supplied arguments to the
propget method for this.```js
data = {
hello: {
world: function (arg) {
return {
hi: arg
};
}
}
};prop(data, 'hello.world(what).hi', 'additional') // additional
```## License
MIT