UNPKG

elliptical-observe

Version:
45 lines (30 loc) 1.35 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); 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 }; } function* optionsForString(string, option, props, register, traverse) { const observation = props.observe ? props.observe(string, { props: {}, children: [] }) : undefined; const currentValue = observation ? register(observation) : undefined; const description = props.describe ? props.describe({ props: {}, children: [], data: currentValue }) : undefined; if (description) { yield* traverse(description, option); } } function* traversesForSubstrings(option, props, register, traverse) { const iterations = option.text == null ? [undefined] : (0, _stringUtils.substrings)(option.text, props); for (let substring of iterations) { yield optionsForString(substring, option, props, register, traverse); } } function* visit(option, _ref, traverse) { let props = _ref.props; let register = _ref.register; const traverses = traversesForSubstrings(option, props, register, traverse); yield* (0, _utils.limitIterator)(traverses, props.limit); } exports.default = { visit: visit };