UNPKG

chain-able

Version:

interfaces that describe their intentions.

46 lines (41 loc) 3.8 kB
var isArray = require('../../is/array') var includes = require('./includes') /** * @param {string} needle * @param {Array<string>} haystack * @return {boolean} */ function strHasAll(needle, haystack) { if (needle === haystack) { return true } for (var i = 0, len = haystack.length; i < len; i++) { if (!includes(haystack[i], needle)) { return false } } return true } /** * @see strHasAll * @param {Array<string>} needles * @param {Array<string>} haystack * @return {boolean} */ function arrayHasAll(needles, haystack) { // loop needles for (var i = 0; i < needles.length; i++) { if (!strHasAll(needles[i], haystack)) { return false } } return true } /** * @see arrayHasAll * @see strHasAll * @param {Array<string> | string} needle * @param {Array<string>} haystack * @return {boolean} */ function includesAll(needle, haystack) { if (isArray(needle)) { return arrayHasAll(needle, haystack) } else { return strHasAll(needle, haystack) } } module.exports = includesAll //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmpzIiwic291cmNlcyI6WyJhbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNBcnJheSA9IHJlcXVpcmUoJy4uLy4uL2lzL2FycmF5JylcbmNvbnN0IGluY2x1ZGVzID0gcmVxdWlyZSgnLi9pbmNsdWRlcycpXG5cbi8qKlxuICogQHBhcmFtICB7c3RyaW5nfSBuZWVkbGVcbiAqIEBwYXJhbSAge0FycmF5PHN0cmluZz59IGhheXN0YWNrXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBzdHJIYXNBbGwobmVlZGxlLCBoYXlzdGFjaykge1xuICBpZiAobmVlZGxlID09PSBoYXlzdGFjaykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGhheXN0YWNrLmxlbmd0aDsgaSA8IGxlbjsgaSsrKVxuICAgIGlmICghaW5jbHVkZXMoaGF5c3RhY2tbaV0sIG5lZWRsZSkpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIEBzZWUgc3RySGFzQWxsXG4gKiBAcGFyYW0gIHtBcnJheTxzdHJpbmc+fSBuZWVkbGVzXG4gKiBAcGFyYW0gIHtBcnJheTxzdHJpbmc+fSBoYXlzdGFja1xuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gYXJyYXlIYXNBbGwobmVlZGxlcywgaGF5c3RhY2spIHtcbiAgLy8gbG9vcCBuZWVkbGVzXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbmVlZGxlcy5sZW5ndGg7IGkrKykge1xuICAgIGlmICghc3RySGFzQWxsKG5lZWRsZXNbaV0sIGhheXN0YWNrKSkgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBAc2VlIGFycmF5SGFzQWxsXG4gKiBAc2VlIHN0ckhhc0FsbFxuICogQHBhcmFtICB7QXJyYXk8c3RyaW5nPiB8IHN0cmluZ30gbmVlZGxlXG4gKiBAcGFyYW0gIHtBcnJheTxzdHJpbmc+fSBoYXlzdGFja1xuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaW5jbHVkZXNBbGwobmVlZGxlLCBoYXlzdGFjaykge1xuICBpZiAoaXNBcnJheShuZWVkbGUpKSByZXR1cm4gYXJyYXlIYXNBbGwobmVlZGxlLCBoYXlzdGFjaylcbiAgZWxzZSByZXR1cm4gc3RySGFzQWxsKG5lZWRsZSwgaGF5c3RhY2spXG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5jbHVkZXNBbGxcbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO0FBQ3pDQSxHQUFLLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7Ozs7Ozs7QUFPdEMsU0FBUyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtFQUNuQyxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUU7SUFDdkIsT0FBTyxJQUFJO0dBQ1o7RUFDRCxLQUFLQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRTtJQUNqRCxFQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUEsT0FBTyxLQUFLLElBQUE7RUFDbEQsT0FBTyxJQUFJO0NBQ1o7Ozs7Ozs7O0FBUUQsU0FBUyxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTs7RUFFdEMsS0FBS0EsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBQSxPQUFPLEtBQUssRUFBQTtHQUNuRDtFQUNELE9BQU8sSUFBSTtDQUNaOzs7Ozs7Ozs7QUFTRCxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0VBQ3JDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUEsT0FBTyxXQUFXLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFBO09BQ3BELEVBQUEsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFBO0NBQ3hDOztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsV0FBVzsifQ==