UNPKG

elliptical

Version:

Interactive natural-language interfaces

329 lines (253 loc) 8.08 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); exports.isComplete = isComplete; exports.limitIterator = limitIterator; exports.substrings = substrings; var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _smartSplit = require('smart-split'); var _smartSplit2 = _interopRequireDefault(_smartSplit); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _marked = [limitIterator, substrings].map(_regenerator2.default.mark); 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) { var successes, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, success, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, option, mods, _mods, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, _item; return _regenerator2.default.wrap(function limitIterator$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!limit) { _context.next = 65; break; } successes = 0; _iteratorNormalCompletion = true; _didIteratorError = false; _iteratorError = undefined; _context.prev = 5; _iterator = iterator[Symbol.iterator](); case 7: if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { _context.next = 49; break; } item = _step.value; success = false; if (!item[Symbol.iterator]) { _context.next = 40; break; } _iteratorNormalCompletion2 = true; _didIteratorError2 = false; _iteratorError2 = undefined; _context.prev = 14; _iterator2 = item[Symbol.iterator](); case 16: if (_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done) { _context.next = 24; break; } option = _step2.value; mods = { callbacks: option.callbacks.concat(function () { success = true; }) }; _context.next = 21; return _lodash2.default.assign({}, option, mods); case 21: _iteratorNormalCompletion2 = true; _context.next = 16; break; case 24: _context.next = 30; break; case 26: _context.prev = 26; _context.t0 = _context['catch'](14); _didIteratorError2 = true; _iteratorError2 = _context.t0; case 30: _context.prev = 30; _context.prev = 31; if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } case 33: _context.prev = 33; if (!_didIteratorError2) { _context.next = 36; break; } throw _iteratorError2; case 36: return _context.finish(33); case 37: return _context.finish(30); case 38: _context.next = 43; break; case 40: _mods = { callbacks: item.callbacks.concat(function () { success = true; }) }; _context.next = 43; return _lodash2.default.assign({}, item, _mods); case 43: if (success) successes++; if (!(limit <= successes)) { _context.next = 46; break; } return _context.abrupt('break', 49); case 46: _iteratorNormalCompletion = true; _context.next = 7; break; case 49: _context.next = 55; break; case 51: _context.prev = 51; _context.t1 = _context['catch'](5); _didIteratorError = true; _iteratorError = _context.t1; case 55: _context.prev = 55; _context.prev = 56; if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } case 58: _context.prev = 58; if (!_didIteratorError) { _context.next = 61; break; } throw _iteratorError; case 61: return _context.finish(58); case 62: return _context.finish(55); case 63: _context.next = 95; break; case 65: _iteratorNormalCompletion3 = true; _didIteratorError3 = false; _iteratorError3 = undefined; _context.prev = 68; _iterator3 = iterator[Symbol.iterator](); case 70: if (_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done) { _context.next = 81; break; } _item = _step3.value; if (!_item[Symbol.iterator]) { _context.next = 76; break; } return _context.delegateYield(_item, 't2', 74); case 74: _context.next = 78; break; case 76: _context.next = 78; return _item; case 78: _iteratorNormalCompletion3 = true; _context.next = 70; break; case 81: _context.next = 87; break; case 83: _context.prev = 83; _context.t3 = _context['catch'](68); _didIteratorError3 = true; _iteratorError3 = _context.t3; case 87: _context.prev = 87; _context.prev = 88; if (!_iteratorNormalCompletion3 && _iterator3.return) { _iterator3.return(); } case 90: _context.prev = 90; if (!_didIteratorError3) { _context.next = 93; break; } throw _iteratorError3; case 93: return _context.finish(90); case 94: return _context.finish(87); case 95: case 'end': return _context.stop(); } } }, _marked[0], this, [[5, 51, 55, 63], [14, 26, 30, 38], [31,, 33, 37], [56,, 58, 62], [68, 83, 87, 95], [88,, 90, 94]]); } function substrings(input, _ref) { var _ref$splitOn = _ref.splitOn; var splitOn = _ref$splitOn === undefined ? '' : _ref$splitOn; var _ref$consumeAll = _ref.consumeAll; var consumeAll = _ref$consumeAll === undefined ? false : _ref$consumeAll; var _ref$greedy = _ref.greedy; var greedy = _ref$greedy === undefined ? false : _ref$greedy; var inputs, i; return _regenerator2.default.wrap(function substrings$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!consumeAll) { _context2.next = 4; break; } _context2.next = 3; return input; case 3: return _context2.abrupt('return'); case 4: inputs = (0, _smartSplit2.default)(input, splitOn); i = 0; case 6: if (!(i < inputs.length)) { _context2.next = 17; break; } if (!greedy) { _context2.next = 12; break; } _context2.next = 10; return inputs.slice(0, inputs.length - i).join(''); case 10: _context2.next = 14; break; case 12: _context2.next = 14; return inputs.slice(0, i + 1).join(''); case 14: i += 2; _context2.next = 6; break; case 17: case 'end': return _context2.stop(); } } }, _marked[1], this); }