assert-unique
Version:
Test if values have no duplication
77 lines (48 loc) • 2.47 kB
Markdown
# assert-unique
[](https://travis-ci.org/shinnn/assert-unique)
[](https://ci.appveyor.com/project/ShinnosukeWatanabe/assert-unique)
[](https://coveralls.io/r/shinnn/assert-unique)
[](https://david-dm.org/shinnn/assert-unique)
[](https://david-dm.org/shinnn/assert-unique#info=devDependencies)
Test if values have no duplication
```javascript
assertUnique(3, 'a', 3, 3, true, 'a'); // Error: 3 and "a" are duplicated.
```
## Installation
### Package managers
#### [npm](https://www.npmjs.org/) [](https://www.npmjs.org/package/assert-unique)
```sh
npm install assert-unique
```
#### [bower](http://bower.io/) [](https://github.com/shinnn/assert-unique/releases)
```sh
bower install assert-unique
```
#### [Duo](http://duojs.org/)
```javascript
var assertUnique = require('shinnn/assert-unique');
```
### Standalone
Directly download [the script file](https://raw.githubusercontent.com/shinnn/assert-unique/master/assert-unique.js) and its dependencies.
#### Dependencies
* [array-duplicated](https://raw.githubusercontent.com/shinnn/array-duplicated/master/array-duplicated.js)
* [array-to-sentence](https://raw.githubusercontent.com/shinnn/array-to-sentence/master/array-to-sentence.js)
## API
### assertUnique([*val0*, *val1*, *val2*, ...])
*val0*, *val1*, *val2*, ...: any types
It throws an error when the arguments include duplicated values. Otherwise it doesn't throw any errors.
```javascript
assertUnique(1, '1',); // doesn't throw error
assertUnique(); // doesn't throw error
assertUnique('h', 'e', 'l', 'l', 'o'); // Error: "l" is duplicated.
assertUnique(parseInt, parseInt); // Error: [Function: parseInt] is duplicated.
```
*Note that it doesn't check deep equality.*
```javascript
var obj = {};
assertUnique(obj, obj); // Error: {} is duplicated.
assertUnique({}, {}); // doesn't throw error
```
## License
Copyright (c) 2014 [Shinnosuke Watanabe](https://github.com/shinnn)
Licensed under [the MIT License](./LICENSE).