UNPKG

chain-able

Version:

interfaces that describe their intentions.

54 lines (49 loc) 4.12 kB
var isArray = require('../../is/array') var includes = require('./includes') /** * @param {string} needle * @param {Array<string>} haystack * @return {boolean} */ function strHasAny(needle, haystack) { if (needle.includes(haystack)) { return true } for (var i = 0, len = haystack.length; i < len; i++) { if (haystack[i].includes(needle)) { return true } } return false } /** * @see strHasAny * @param {Array<string>} needles * @param {Array<string>} haystack * @return {boolean} */ function arrayHasAny(needles, haystack) { if (needles.includes(haystack)) { return true } // loop needles for (var i = 0; i < needles.length; i++) { if (strHasAny(needles[i], haystack)) { return true } } return false } /** * @see arrayHasAny * @see strHasAny * @param {Array<string> | string} needle * @param {Array<string>} haystack * @return {boolean} */ function includesAny(needle, haystack) { if (isArray(needle)) { return arrayHasAny(needle, haystack) } else { return strHasAny(needle, haystack) } } module.exports = includesAny //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LmpzIiwic291cmNlcyI6WyJhbnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNBcnJheSA9IHJlcXVpcmUoJy4uLy4uL2lzL2FycmF5JylcbmNvbnN0IGluY2x1ZGVzID0gcmVxdWlyZSgnLi9pbmNsdWRlcycpXG5cbi8qKlxuICogQHBhcmFtICB7c3RyaW5nfSBuZWVkbGVcbiAqIEBwYXJhbSAge0FycmF5PHN0cmluZz59IGhheXN0YWNrXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBzdHJIYXNBbnkobmVlZGxlLCBoYXlzdGFjaykge1xuICBpZiAobmVlZGxlLmluY2x1ZGVzKGhheXN0YWNrKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGhheXN0YWNrLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGhheXN0YWNrW2ldLmluY2x1ZGVzKG5lZWRsZSkpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIEBzZWUgc3RySGFzQW55XG4gKiBAcGFyYW0gIHtBcnJheTxzdHJpbmc+fSBuZWVkbGVzXG4gKiBAcGFyYW0gIHtBcnJheTxzdHJpbmc+fSBoYXlzdGFja1xuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gYXJyYXlIYXNBbnkobmVlZGxlcywgaGF5c3RhY2spIHtcbiAgaWYgKG5lZWRsZXMuaW5jbHVkZXMoaGF5c3RhY2spKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICAvLyBsb29wIG5lZWRsZXNcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuZWVkbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0ckhhc0FueShuZWVkbGVzW2ldLCBoYXlzdGFjaykpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIEBzZWUgYXJyYXlIYXNBbnlcbiAqIEBzZWUgc3RySGFzQW55XG4gKiBAcGFyYW0gIHtBcnJheTxzdHJpbmc+IHwgc3RyaW5nfSBuZWVkbGVcbiAqIEBwYXJhbSAge0FycmF5PHN0cmluZz59IGhheXN0YWNrXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpbmNsdWRlc0FueShuZWVkbGUsIGhheXN0YWNrKSB7XG4gIGlmIChpc0FycmF5KG5lZWRsZSkpIHJldHVybiBhcnJheUhhc0FueShuZWVkbGUsIGhheXN0YWNrKVxuICBlbHNlIHJldHVybiBzdHJIYXNBbnkobmVlZGxlLCBoYXlzdGFjaylcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbmNsdWRlc0FueVxuIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7QUFDekNBLEdBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQzs7Ozs7OztBQU90QyxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0VBQ25DLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtJQUM3QixPQUFPLElBQUk7R0FDWjtFQUNELEtBQUtDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDbkQsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO01BQ2hDLE9BQU8sSUFBSTtLQUNaO0dBQ0Y7RUFDRCxPQUFPLEtBQUs7Q0FDYjs7Ozs7Ozs7QUFRRCxTQUFTLFdBQVcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO0VBQ3RDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtJQUM5QixPQUFPLElBQUk7R0FDWjs7RUFFRCxLQUFLQSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUN2QyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUU7TUFDbkMsT0FBTyxJQUFJO0tBQ1o7R0FDRjtFQUNELE9BQU8sS0FBSztDQUNiOzs7Ozs7Ozs7QUFTRCxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0VBQ3JDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUEsT0FBTyxXQUFXLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFBO09BQ3BELEVBQUEsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFBO0NBQ3hDOztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsV0FBVzsifQ==