has-value
Advanced tools
Comparing version 0.3.1 to 1.0.0
/*! | ||
* has-value <https://github.com/jonschlinkert/has-value> | ||
* | ||
* Copyright (c) 2014-2016, Jon Schlinkert. | ||
* Copyright (c) 2014-2017, Jon Schlinkert. | ||
* Licensed under the MIT License. | ||
@@ -14,7 +14,4 @@ */ | ||
module.exports = function(obj, prop, noZero) { | ||
if (isObject(obj)) { | ||
return hasValues(get(obj, prop), noZero); | ||
} | ||
return hasValues(obj, prop); | ||
module.exports = function(val, prop) { | ||
return hasValues(isObject(val) && prop ? get(val, prop) : val); | ||
}; |
{ | ||
"name": "has-value", | ||
"version": "0.3.1", | ||
"description": "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.", | ||
"version": "1.0.0", | ||
"homepage": "https://github.com/jonschlinkert/has-value", | ||
"author": "Jon Schlinkert (https://github.com/jonschlinkert)", | ||
"contributors": [ | ||
"Jon Schlinkert (http://twitter.com/jonschlinkert)", | ||
"Ryan M Harrison (https://linkedin.com/in/harrisonrm)" | ||
], | ||
"repository": "jonschlinkert/has-value", | ||
@@ -23,9 +27,9 @@ "bugs": { | ||
"dependencies": { | ||
"get-value": "^2.0.3", | ||
"has-values": "^0.1.4", | ||
"isobject": "^2.0.0" | ||
"get-value": "^2.0.6", | ||
"has-values": "^1.0.0", | ||
"isobject": "^3.0.0" | ||
}, | ||
"devDependencies": { | ||
"gulp-format-md": "^0.1.7", | ||
"mocha": "^2.4.5" | ||
"gulp-format-md": "^0.1.12", | ||
"mocha": "^3.4.1" | ||
}, | ||
@@ -69,11 +73,9 @@ "keywords": [ | ||
"list": [ | ||
"get-object", | ||
"get-property", | ||
"define-property", | ||
"get-value", | ||
"set-value" | ||
"set-value", | ||
"unset-value" | ||
] | ||
}, | ||
"reflinks": [ | ||
"verb" | ||
], | ||
"reflinks": [], | ||
"lint": { | ||
@@ -80,0 +82,0 @@ "reflinks": true |
117
README.md
@@ -1,2 +0,2 @@ | ||
# has-value [![NPM version](https://img.shields.io/npm/v/has-value.svg?style=flat)](https://www.npmjs.com/package/has-value) [![NPM downloads](https://img.shields.io/npm/dm/has-value.svg?style=flat)](https://npmjs.org/package/has-value) [![Build Status](https://img.shields.io/travis/jonschlinkert/has-value.svg?style=flat)](https://travis-ci.org/jonschlinkert/has-value) | ||
# has-value [![NPM version](https://img.shields.io/npm/v/has-value.svg?style=flat)](https://www.npmjs.com/package/has-value) [![NPM monthly downloads](https://img.shields.io/npm/dm/has-value.svg?style=flat)](https://npmjs.org/package/has-value) [![NPM total downloads](https://img.shields.io/npm/dt/has-value.svg?style=flat)](https://npmjs.org/package/has-value) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/has-value.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/has-value) | ||
@@ -10,3 +10,3 @@ > Returns true if a value exists, false if empty. Works with deeply nested values using object paths. | ||
```sh | ||
$ npm install has-value --save | ||
$ npm install --save has-value | ||
``` | ||
@@ -18,3 +18,3 @@ | ||
* functions | ||
* numbers (pass `true` as the last arg to treat zero as a value instead of falsey) | ||
* numbers | ||
* strings | ||
@@ -27,3 +27,3 @@ * nulls | ||
Works with nested object paths or a single value: | ||
Works with property values (supports object-path notation, like `foo.bar`) or a single value: | ||
@@ -33,40 +33,48 @@ ```js | ||
hasValue({a: {b: {c: 'foo'}}} 'a.b.c'); | ||
hasValue('foo'); | ||
hasValue({foo: 'bar'}, 'foo'); | ||
hasValue({a: {b: {c: 'foo'}}}, 'a.b.c'); | ||
//=> true | ||
hasValue('a'); | ||
//=> true | ||
hasValue(''); | ||
hasValue({foo: ''}, 'foo'); | ||
//=> false | ||
hasValue(0); | ||
hasValue(1); | ||
hasValue({foo: 0}, 'foo'); | ||
hasValue({foo: 1}, 'foo'); | ||
hasValue({foo: null}, 'foo'); | ||
hasValue({foo: {bar: 'a'}}}, 'foo'); | ||
hasValue({foo: {bar: 'a'}}}, 'foo.bar'); | ||
//=> true | ||
hasValue(0); | ||
hasValue({foo: {}}}, 'foo'); | ||
hasValue({foo: {bar: {}}}}, 'foo.bar'); | ||
hasValue({foo: undefined}, 'foo'); | ||
//=> false | ||
hasValue(0, true); // pass `true` as the last arg to treat zero as a value | ||
//=> true | ||
hasValue({a: 'a'}}); | ||
//=> true | ||
hasValue({}}); | ||
hasValue([]); | ||
hasValue([[]]); | ||
hasValue([[], []]); | ||
hasValue([undefined]); | ||
hasValue({foo: []}, 'foo'); | ||
//=> false | ||
hasValue(['a']); | ||
hasValue([0]); | ||
hasValue([null]); | ||
hasValue(['foo']); | ||
hasValue({foo: ['a']}, 'foo'); | ||
//=> true | ||
hasValue([]); | ||
//=> false | ||
hasValue(function(foo) {}); // function length/arity | ||
hasValue(function() {}) | ||
hasValue(function(foo) {}) | ||
hasValue({foo: function(foo) {}}, 'foo'); | ||
hasValue({foo: function() {}}, 'foo'); | ||
//=> true | ||
hasValue(function() {}); | ||
//=> false | ||
hasValue(true); | ||
hasValue(false); | ||
hasValue({foo: true}, 'foo'); | ||
hasValue({foo: false}, 'foo'); | ||
//=> true | ||
@@ -80,3 +88,3 @@ ``` | ||
```js | ||
function isEmpty(o, isZero) { | ||
function isEmpty(o) { | ||
return !hasValue.apply(hasValue, arguments); | ||
@@ -86,38 +94,49 @@ } | ||
## Related projects | ||
## Release history | ||
You might also be interested in these projects: | ||
### v1.0.0 | ||
* [get-object](https://www.npmjs.com/package/get-object): Get a property from an object using dot (object path) notation. | [homepage](https://github.com/jonschlinkert/get-object) | ||
* [get-property](https://www.npmjs.com/package/get-property): Get a nested property or its value from an object using simple `a.b.c` paths. | [homepage](https://github.com/jonschlinkert/get-property) | ||
* [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value) | ||
* [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value) | ||
* `zero` always returns true | ||
* `array` now recurses, so that an array of empty arrays will return `false` | ||
* `null` now returns true | ||
## Contributing | ||
## About | ||
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/has-value/issues/new). | ||
### Related projects | ||
## Building docs | ||
* [define-property](https://www.npmjs.com/package/define-property): Define a non-enumerable property on an object. | [homepage](https://github.com/jonschlinkert/define-property "Define a non-enumerable property on an object.") | ||
* [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value "Use property paths (`a.b.c`) to get a nested value from an object.") | ||
* [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.") | ||
* [unset-value](https://www.npmjs.com/package/unset-value): Delete nested properties from an object using dot notation. | [homepage](https://github.com/jonschlinkert/unset-value "Delete nested properties from an object using dot notation.") | ||
Generate readme and API documentation with [verb](https://github.com/verbose/verb): | ||
### Contributing | ||
```sh | ||
$ npm install verb && npm run docs | ||
``` | ||
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). | ||
Or, if [verb](https://github.com/verbose/verb) is installed globally: | ||
### Contributors | ||
| **Commits** | **Contributor** | | ||
| --- | --- | | ||
| 17 | [jonschlinkert](https://github.com/jonschlinkert) | | ||
| 2 | [rmharrison](https://github.com/rmharrison) | | ||
### Building docs | ||
_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ | ||
To generate the readme, run the following command: | ||
```sh | ||
$ verb | ||
$ npm install -g verbose/verb#dev verb-generate-readme && verb | ||
``` | ||
## Running tests | ||
### Running tests | ||
Install dev dependencies: | ||
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: | ||
```sh | ||
$ npm install -d && npm test | ||
$ npm install && npm test | ||
``` | ||
## Author | ||
### Author | ||
@@ -127,11 +146,11 @@ **Jon Schlinkert** | ||
* [github/jonschlinkert](https://github.com/jonschlinkert) | ||
* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) | ||
* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) | ||
## License | ||
### License | ||
Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). | ||
Released under the [MIT license](https://github.com/jonschlinkert/has-value/blob/master/LICENSE). | ||
Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). | ||
Released under the [MIT License](LICENSE). | ||
*** | ||
_This file was generated by [verb](https://github.com/verbose/verb), v, on March 27, 2016._ | ||
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._ |
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
7617
0
149
13
+ Addedhas-values@1.0.0(transitive)
+ Addedis-buffer@1.1.6(transitive)
+ Addedis-number@3.0.0(transitive)
+ Addedisobject@3.0.1(transitive)
+ Addedkind-of@3.2.24.0.0(transitive)
- Removedhas-values@0.1.4(transitive)
- Removedisarray@1.0.0(transitive)
- Removedisobject@2.1.0(transitive)
Updatedget-value@^2.0.6
Updatedhas-values@^1.0.0
Updatedisobject@^3.0.0