fdsfd
This commit is contained in:
parent
628618df89
commit
e031240dff
3749 changed files with 1120848 additions and 1 deletions
76
node_modules/dlv/README.md
generated
vendored
Normal file
76
node_modules/dlv/README.md
generated
vendored
Normal file
|
@ -0,0 +1,76 @@
|
|||
# `dlv(obj, keypath)` [](https://npmjs.com/package/dlv) [](https://travis-ci.org/developit/dlv)
|
||||
|
||||
> Safely get a dot-notated path within a nested object, with ability to return a default if the full key path does not exist or the value is undefined
|
||||
|
||||
|
||||
### Why?
|
||||
|
||||
Smallest possible implementation: only **130 bytes.**
|
||||
|
||||
You could write this yourself, but then you'd have to write [tests].
|
||||
|
||||
Supports ES Modules, CommonJS and globals.
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
`npm install --save dlv`
|
||||
|
||||
|
||||
### Usage
|
||||
|
||||
`delve(object, keypath, [default])`
|
||||
|
||||
```js
|
||||
import delve from 'dlv';
|
||||
|
||||
let obj = {
|
||||
a: {
|
||||
b: {
|
||||
c: 1,
|
||||
d: undefined,
|
||||
e: null
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//use string dot notation for keys
|
||||
delve(obj, 'a.b.c') === 1;
|
||||
|
||||
//or use an array key
|
||||
delve(obj, ['a', 'b', 'c']) === 1;
|
||||
|
||||
delve(obj, 'a.b') === obj.a.b;
|
||||
|
||||
//returns undefined if the full key path does not exist and no default is specified
|
||||
delve(obj, 'a.b.f') === undefined;
|
||||
|
||||
//optional third parameter for default if the full key in path is missing
|
||||
delve(obj, 'a.b.f', 'foo') === 'foo';
|
||||
|
||||
//or if the key exists but the value is undefined
|
||||
delve(obj, 'a.b.d', 'foo') === 'foo';
|
||||
|
||||
//Non-truthy defined values are still returned if they exist at the full keypath
|
||||
delve(obj, 'a.b.e', 'foo') === null;
|
||||
|
||||
//undefined obj or key returns undefined, unless a default is supplied
|
||||
delve(undefined, 'a.b.c') === undefined;
|
||||
delve(undefined, 'a.b.c', 'foo') === 'foo';
|
||||
delve(obj, undefined, 'foo') === 'foo';
|
||||
```
|
||||
|
||||
|
||||
### Setter Counterparts
|
||||
|
||||
- [dset](https://github.com/lukeed/dset) by [@lukeed](https://github.com/lukeed) is the spiritual "set" counterpart of `dlv` and very fast.
|
||||
- [bury](https://github.com/kalmbach/bury) by [@kalmbach](https://github.com/kalmbach) does the opposite of `dlv` and is implemented in a very similar manner.
|
||||
|
||||
|
||||
### License
|
||||
|
||||
[MIT](https://oss.ninja/mit/developit/)
|
||||
|
||||
|
||||
[preact]: https://github.com/developit/preact
|
||||
[tests]: https://github.com/developit/dlv/blob/master/test.js
|
Loading…
Add table
Add a link
Reference in a new issue