elliptical-observe
Version:
Sideways Data Loading for Elliptical
67 lines (54 loc) • 1.61 kB
JavaScript
import _regeneratorRuntime from 'babel-runtime/regenerator';
var _marked = [substrings].map(_regeneratorRuntime.mark);
import split from 'smart-split';
export 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 _regeneratorRuntime.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 = split(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);
}