elliptical-observe
Version:
Sideways Data Loading for Elliptical
64 lines (55 loc) • 1.53 kB
JavaScript
;
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)
// }