UNPKG

iter-tools-es

Version:
40 lines (33 loc) 955 B
const { iterableCurry } = require('../../internal/iterable.js'); const { seqsToArray } = require('../../internal/any-seq.js'); const { __windowAhead } = require('../$window-ahead/window-ahead.js'); const { __startsWithAnySeq } = require('../$starts-with-any-seq/starts-with-any-seq.js'); function __includesAnySeq(iterable, seqs, same = Object.is) { const seqsArr = seqsToArray(seqs); if (!seqsArr.length) return false; if (seqsArr.find(seq => !seq.length)) return true; const maxMatchLength = seqsArr.reduce((max, { length }) => Math.max(max, length), 1); for (const buffer of __windowAhead(iterable, maxMatchLength)) { if (__startsWithAnySeq(buffer, seqsArr, same)) { return true; } } return false; } exports.__includesAnySeq = __includesAnySeq; const includesAnySeq = /*#__PURE__*/iterableCurry(__includesAnySeq, { minArgs: 1, maxArgs: 2, reduces: true }); exports.includesAnySeq = includesAnySeq;