elliptical-observe
Version:
Sideways Data Loading for Elliptical
81 lines (62 loc) • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
exports.substrings = substrings;
var _smartSplit = require('smart-split');
var _smartSplit2 = _interopRequireDefault(_smartSplit);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _marked = [substrings].map(_regenerator2.default.mark);
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$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!consumeAll) {
_context.next = 4;
break;
}
_context.next = 3;
return input;
case 3:
return _context.abrupt('return');
case 4:
inputs = (0, _smartSplit2.default)(input, splitOn);
i = 0;
case 6:
if (!(i < inputs.length)) {
_context.next = 17;
break;
}
if (!greedy) {
_context.next = 12;
break;
}
_context.next = 10;
return inputs.slice(0, inputs.length - i).join('');
case 10:
_context.next = 14;
break;
case 12:
_context.next = 14;
return inputs.slice(0, i + 1).join('');
case 14:
i += 2;
_context.next = 6;
break;
case 17:
case 'end':
return _context.stop();
}
}
}, _marked[0], this);
}