assert-unique
Version:
Test if values have no duplication
45 lines (35 loc) • 938 B
JavaScript
/*!
* assert-unique | MIT (c) Shinnosuke Watanabe
* https://github.com/shinnn/assert-unique
*/
;
var arrayDuplicated = require('array-duplicated');
var arrayToSentence = require('array-to-sentence');
module.exports = function assertUnique() {
if (arguments.length === 0) {
return;
}
var duplicates = arrayDuplicated([].slice.call(arguments));
if (duplicates.length === 0) {
return;
}
var len = duplicates.length;
while (len--) {
if (typeof duplicates[len] === 'function') {
var fnName = '';
if (duplicates[len].name) {
fnName = ': ' + duplicates[len].name;
}
duplicates[len] = '[Function' + fnName + ']';
} else {
duplicates[len] = JSON.stringify(duplicates[len]);
}
}
var aux;
if (duplicates.length === 1) {
aux = 'is';
} else {
aux = 'are';
}
throw new Error(arrayToSentence(duplicates) + ' ' + aux + ' duplicated.');
};