forked from validatorjs/validator.js
/
isIn.js
23 lines (22 loc) · 785 Bytes
/
isIn.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import assertString from './util/assertString';
import toString from './util/toString';
export default function isIn(str, options) {
assertString(str);
let i;
if (Object.prototype.toString.call(options) === '[object Array]') {
const array = [];
for (i in options) {
// https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes
// istanbul ignore else
if ({}.hasOwnProperty.call(options, i)) {
array[i] = toString(options[i]);
}
}
return array.indexOf(str) >= 0;
} else if (typeof options === 'object') {
return options.hasOwnProperty(str);
} else if (options && typeof options.indexOf === 'function') {
return options.indexOf(str) >= 0;
}
return false;
}