UNPKG

elliptical-observe

Version:
64 lines (55 loc) 1.53 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.isComplete = isComplete; exports.limitIterator = limitIterator; var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function isComplete(option) { return !_lodash2.default.some(option.words, 'placeholder'); } // Accepts either an iterator of Options, or an iterator of iterators of Options function* limitIterator(iterator, limit) { if (limit) { let successes = 0; for (let item of iterator) { let success = false; if (item[Symbol.iterator]) { for (let option of item) { const mods = { callbacks: option.callbacks.concat(() => { success = true; }) }; yield _lodash2.default.assign({}, option, mods); } } else { const mods = { callbacks: item.callbacks.concat(() => { success = true; }) }; yield _lodash2.default.assign({}, item, mods); } if (success) successes++; if (limit <= successes) break; } } else { for (let item of iterator) { if (item[Symbol.iterator]) { yield* item; } else { yield item; } } } } // export function addWords (option, words) { // if (s // const mods = { // phrases: { // [option.phrases.length - 1]: // _.last(option.phrases) // }