UNPKG

elliptical

Version:

Interactive natural-language interfaces

36 lines (25 loc) 1.03 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _utils = require('../utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function* optionsForString(string, option, element, traverse) { const description = element.props.describe ? element.props.describe(string, option) : undefined; if (description) { yield* traverse(description, option); } } function* traversesForSubstrings(option, element, traverse) { const iterations = option.text == null ? [undefined] : (0, _utils.substrings)(option.text, element.props); for (let substring of iterations) { yield optionsForString(substring, option, element, traverse); } } function* visit(option, element, traverse) { const traverses = traversesForSubstrings(option, element, traverse); yield* (0, _utils.limitIterator)(traverses, element.props.limit); } exports.default = { visit: visit };