UNPKG

foop

Version:

interfaces that describe their intentions.

89 lines (80 loc) 6.78 kB
var isStringPrimitive = require('../../is/stringPrimitive') var curry = require('../../fp/curry') var haystackNeedle = require('./haystackNeedle') /** * @desc needle includes haystack, haystack includes needle * @version 4.0.0 * @memberOf includes * * @param {string} needle serves dualy as haystack * @param {Array<string>} haystack serves dualy as needle * @return {boolean} * * @example * * strHas('eh', 'eh') //=> true * strHas('eh', 'e') //=> true * strHas('eh', 'nope') //=> false * */ function strHasAny(needle, haystack) { if (haystackNeedle(needle, haystack)) { return true } for (var i = 0, len = haystack.length; i < len; i++) { if (haystackNeedle(haystack[i], needle)) { return true } } return false } /** * @memberOf includes * @version 1.0.0 * @since 0.1.0 * * @param {Array<string>} needles also serves as haystack * @param {Array<string>} haystack also serves as needle * @return {boolean} * * @extends strHasAny * @see includes/any#strHasAny * * @example * * arrayHasAny(['eh'], ['eh']) //=> true * arrayHasAny('eh', ['e']) //=> true * arrayHasAny(['eh'], 'e') //=> true * arrayHasAny(['eh'], 'eh') //=> true * */ function arrayHasAny(needles, haystack) { if (haystackNeedle(needles, haystack)) { return true } // loop needles for (var i = 0; i < needles.length; i++) { if (strHasAny(needles[i], haystack)) { return true } } return false } /** * @desc any haystack includes any needle * @since 0.1.0 * @version 1.0.0 * @memberOf includes * * @param {Array<string> | string} needle also serves as haystack * @param {Array<string>} haystack also serves as needle * @return {boolean} * * @see arrayHasAny * @see strHasAny * @see isStringPrimitive * * @example * * includesAny('eh', 'e') //=> true * includesAny('eh', 'eh') //=> true * includesAny(['eh'], 'e') //=> true * includesAny(['eh'], 'nope') //=> false * */ function includesAny(needle, haystack) { if (isStringPrimitive(needle)) { return strHasAny(needle, haystack) } else { return arrayHasAny(needle, haystack) } } module.exports = curry(2, includesAny) //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LmpzIiwic291cmNlcyI6WyJhbnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNTdHJpbmdQcmltaXRpdmUgPSByZXF1aXJlKCcuLi8uLi9pcy9zdHJpbmdQcmltaXRpdmUnKVxuY29uc3QgY3VycnkgPSByZXF1aXJlKCcuLi8uLi9mcC9jdXJyeScpXG5jb25zdCBoYXlzdGFja05lZWRsZSA9IHJlcXVpcmUoJy4vaGF5c3RhY2tOZWVkbGUnKVxuXG4vKipcbiAqIEBkZXNjIG5lZWRsZSBpbmNsdWRlcyBoYXlzdGFjaywgaGF5c3RhY2sgaW5jbHVkZXMgbmVlZGxlXG4gKiBAdmVyc2lvbiA0LjAuMFxuICogQG1lbWJlck9mIGluY2x1ZGVzXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSBuZWVkbGUgc2VydmVzIGR1YWx5IGFzIGhheXN0YWNrXG4gKiBAcGFyYW0gIHtBcnJheTxzdHJpbmc+fSBoYXlzdGFjayBzZXJ2ZXMgZHVhbHkgYXMgbmVlZGxlXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogIHN0ckhhcygnZWgnLCAnZWgnKSAgICAvLz0+IHRydWVcbiAqICBzdHJIYXMoJ2VoJywgJ2UnKSAgICAgLy89PiB0cnVlXG4gKiAgc3RySGFzKCdlaCcsICdub3BlJykgIC8vPT4gZmFsc2VcbiAqXG4gKi9cbmZ1bmN0aW9uIHN0ckhhc0FueShuZWVkbGUsIGhheXN0YWNrKSB7XG4gIGlmIChoYXlzdGFja05lZWRsZShuZWVkbGUsIGhheXN0YWNrKSkgcmV0dXJuIHRydWVcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaGF5c3RhY2subGVuZ3RoOyBpIDwgbGVuOyBpKyspXG4gICAgaWYgKGhheXN0YWNrTmVlZGxlKGhheXN0YWNrW2ldLCBuZWVkbGUpKSByZXR1cm4gdHJ1ZVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIEBtZW1iZXJPZiBpbmNsdWRlc1xuICogQHZlcnNpb24gMS4wLjBcbiAqIEBzaW5jZSAwLjEuMFxuICpcbiAqIEBwYXJhbSAge0FycmF5PHN0cmluZz59IG5lZWRsZXMgYWxzbyBzZXJ2ZXMgYXMgaGF5c3RhY2tcbiAqIEBwYXJhbSAge0FycmF5PHN0cmluZz59IGhheXN0YWNrIGFsc28gc2VydmVzIGFzIG5lZWRsZVxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqXG4gKiBAZXh0ZW5kcyBzdHJIYXNBbnlcbiAqIEBzZWUgaW5jbHVkZXMvYW55I3N0ckhhc0FueVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogIGFycmF5SGFzQW55KFsnZWgnXSwgWydlaCddKSAvLz0+IHRydWVcbiAqICBhcnJheUhhc0FueSgnZWgnLCBbJ2UnXSkgICAgLy89PiB0cnVlXG4gKiAgYXJyYXlIYXNBbnkoWydlaCddLCAnZScpICAgIC8vPT4gdHJ1ZVxuICogIGFycmF5SGFzQW55KFsnZWgnXSwgJ2VoJykgICAvLz0+IHRydWVcbiAqXG4gKi9cbmZ1bmN0aW9uIGFycmF5SGFzQW55KG5lZWRsZXMsIGhheXN0YWNrKSB7XG4gIGlmIChoYXlzdGFja05lZWRsZShuZWVkbGVzLCBoYXlzdGFjaykpIHJldHVybiB0cnVlXG5cbiAgLy8gbG9vcCBuZWVkbGVzXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbmVlZGxlcy5sZW5ndGg7IGkrKylcbiAgICBpZiAoc3RySGFzQW55KG5lZWRsZXNbaV0sIGhheXN0YWNrKSkgcmV0dXJuIHRydWVcblxuICByZXR1cm4gZmFsc2Vcbn1cblxuLyoqXG4gKiBAZGVzYyBhbnkgaGF5c3RhY2sgaW5jbHVkZXMgYW55IG5lZWRsZVxuICogQHNpbmNlIDAuMS4wXG4gKiBAdmVyc2lvbiAxLjAuMFxuICogQG1lbWJlck9mIGluY2x1ZGVzXG4gKlxuICogQHBhcmFtICB7QXJyYXk8c3RyaW5nPiB8IHN0cmluZ30gbmVlZGxlIGFsc28gc2VydmVzIGFzIGhheXN0YWNrXG4gKiBAcGFyYW0gIHtBcnJheTxzdHJpbmc+fSBoYXlzdGFjayBhbHNvIHNlcnZlcyBhcyBuZWVkbGVcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKlxuICogQHNlZSBhcnJheUhhc0FueVxuICogQHNlZSBzdHJIYXNBbnlcbiAqIEBzZWUgaXNTdHJpbmdQcmltaXRpdmVcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgIGluY2x1ZGVzQW55KCdlaCcsICdlJykgICAgICAvLz0+IHRydWVcbiAqICAgIGluY2x1ZGVzQW55KCdlaCcsICdlaCcpICAgICAvLz0+IHRydWVcbiAqICAgIGluY2x1ZGVzQW55KFsnZWgnXSwgJ2UnKSAgICAvLz0+IHRydWVcbiAqICAgIGluY2x1ZGVzQW55KFsnZWgnXSwgJ25vcGUnKSAvLz0+IGZhbHNlXG4gKlxuICovXG5mdW5jdGlvbiBpbmNsdWRlc0FueShuZWVkbGUsIGhheXN0YWNrKSB7XG4gIGlmIChpc1N0cmluZ1ByaW1pdGl2ZShuZWVkbGUpKSByZXR1cm4gc3RySGFzQW55KG5lZWRsZSwgaGF5c3RhY2spXG4gIGVsc2UgcmV0dXJuIGFycmF5SGFzQW55KG5lZWRsZSwgaGF5c3RhY2spXG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3VycnkoMiwgaW5jbHVkZXNBbnkpXG4iXSwibmFtZXMiOlsiY29uc3QiLCJsZXQiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLDBCQUEwQixDQUFDO0FBQzdEQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztBQUN2Q0EsR0FBSyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCbEQsU0FBUyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtFQUNuQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBQSxPQUFPLElBQUksRUFBQTs7RUFFakQsS0FBS0MsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUU7SUFDakQsRUFBQSxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBQSxPQUFPLElBQUksSUFBQTs7RUFFdEQsT0FBTyxLQUFLO0NBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkQsU0FBUyxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTtFQUN0QyxJQUFJLGNBQWMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBQSxPQUFPLElBQUksRUFBQTs7O0VBR2xELEtBQUtBLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtJQUNyQyxFQUFBLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFBLE9BQU8sSUFBSSxJQUFBOztFQUVsRCxPQUFPLEtBQUs7Q0FDYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JELFNBQVMsV0FBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7RUFDckMsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFBLE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBQTtPQUM1RCxFQUFBLE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBQTtDQUMxQzs7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDOyJ9