UNPKG

elliptical-observe

Version:
139 lines (108 loc) 3.98 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _stringUtils = require('./string-utils'); var _utils = require('./utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _marked = [optionsForString, traversesForSubstrings, visit].map(_regenerator2.default.mark); function optionsForString(string, option, props, register, traverse) { var observation, currentValue, description; return _regenerator2.default.wrap(function optionsForString$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: observation = props.observe ? props.observe(string, { props: {}, children: [] }) : undefined; currentValue = observation ? register(observation) : undefined; description = props.describe ? props.describe({ props: {}, children: [], data: currentValue }) : undefined; if (!description) { _context.next = 5; break; } return _context.delegateYield(traverse(description, option), 't0', 5); case 5: case 'end': return _context.stop(); } } }, _marked[0], this); } function traversesForSubstrings(option, props, register, traverse) { var iterations, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, substring, success; return _regenerator2.default.wrap(function traversesForSubstrings$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: iterations = option.text == null ? [undefined] : (0, _stringUtils.substrings)(option.text, props); _iteratorNormalCompletion = true; _didIteratorError = false; _iteratorError = undefined; _context2.prev = 4; _iterator = iterations[Symbol.iterator](); case 6: if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { _context2.next = 14; break; } substring = _step.value; success = false; _context2.next = 11; return optionsForString(substring, option, props, register, traverse); case 11: _iteratorNormalCompletion = true; _context2.next = 6; break; case 14: _context2.next = 20; break; case 16: _context2.prev = 16; _context2.t0 = _context2['catch'](4); _didIteratorError = true; _iteratorError = _context2.t0; case 20: _context2.prev = 20; _context2.prev = 21; if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } case 23: _context2.prev = 23; if (!_didIteratorError) { _context2.next = 26; break; } throw _iteratorError; case 26: return _context2.finish(23); case 27: return _context2.finish(20); case 28: case 'end': return _context2.stop(); } } }, _marked[1], this, [[4, 16, 20, 28], [21,, 23, 27]]); } function visit(option, _ref, traverse) { var props = _ref.props; var register = _ref.register; var traverses; return _regenerator2.default.wrap(function visit$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: traverses = traversesForSubstrings(option, props, register, traverse); return _context3.delegateYield((0, _utils.limitIterator)(traverses, props.limit), 't0', 2); case 2: case 'end': return _context3.stop(); } } }, _marked[2], this); } exports.default = { visit: visit };