apr-engine-iterator
Version:
91 lines (72 loc) • 5.75 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('build-array'), require('lodash.isarraylike'), require('lodash.isfinite'), require('lodash.keys'), require('apr-engine-until')) :
typeof define === 'function' && define.amd ? define('apr-engine-iterator', ['build-array', 'lodash.isarraylike', 'lodash.isfinite', 'lodash.keys', 'apr-engine-until'], factory) :
(global['apr-engine-iterator'] = factory(global.buildArray,global.lodash,global.lodash$1,global.lodash$2,global.aprEngineUntil));
}(this, (function (buildArray,lodash,lodash$1,lodash$2,aprEngineUntil) { 'use strict';
buildArray = buildArray && buildArray.hasOwnProperty('default') ? buildArray['default'] : buildArray;
lodash = lodash && lodash.hasOwnProperty('default') ? lodash['default'] : lodash;
lodash$1 = lodash$1 && lodash$1.hasOwnProperty('default') ? lodash$1['default'] : lodash$1;
lodash$2 = lodash$2 && lodash$2.hasOwnProperty('default') ? lodash$2['default'] : lodash$2;
aprEngineUntil = aprEngineUntil && aprEngineUntil.hasOwnProperty('default') ? aprEngineUntil['default'] : aprEngineUntil;
var wrap = function wrap(fn) {
var i = 0;
var group = function group(size) {
if (lodash$1(size)) {
return buildArray(size).map(next);
}
return aprEngineUntil(function () {
return next();
});
};
var next = function next(size) {
if (size) {
return group(size);
}
return fn(i++);
};
return {
next: next
};
};
var arr = function arr(input) {
return wrap(function (i) {
return {
value: input[i],
done: input.length === i,
key: i
};
});
};
var ittr = function ittr(input) {
return wrap(function (i) {
var item = input.next();
return {
done: item.done,
value: item.value,
key: i
};
});
};
var obj = function obj(input) {
var okeys = lodash$2(input);
return wrap(function (i) {
var key = okeys[i];
return {
value: input[key],
done: okeys.length === i,
key: key
};
});
};
var engineIterator = function (input) {
if (lodash(input)) {
return arr(input);
}
if (input[Symbol.iterator]) {
return ittr(input[Symbol.iterator]());
}
return obj(input);
};
return engineIterator;
})));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi9Vc2Vycy9yYW1pdG9zL2Rldi9hcHIvcGFja2FnZXMvZW5naW5lLWl0ZXJhdG9yL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGJ1aWxkQXJyYXkgPSByZXF1aXJlKCdidWlsZC1hcnJheScpO1xuY29uc3QgaXNBcnJheSA9IHJlcXVpcmUoJ2xvZGFzaC5pc2FycmF5bGlrZScpO1xuY29uc3QgaXNGaW5pdGUgPSByZXF1aXJlKCdsb2Rhc2guaXNmaW5pdGUnKTtcbmNvbnN0IGtleXMgPSByZXF1aXJlKCdsb2Rhc2gua2V5cycpO1xuXG5jb25zdCB1bnRpbCA9IHJlcXVpcmUoJ2Fwci1lbmdpbmUtdW50aWwnKTtcblxuY29uc3Qgd3JhcCA9IGZuID0+IHtcbiAgbGV0IGkgPSAwO1xuXG4gIGNvbnN0IGdyb3VwID0gc2l6ZSA9PiB7XG4gICAgaWYgKGlzRmluaXRlKHNpemUpKSB7XG4gICAgICByZXR1cm4gYnVpbGRBcnJheShzaXplKS5tYXAobmV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVudGlsKCgpID0+IG5leHQoKSk7XG4gIH07XG5cbiAgY29uc3QgbmV4dCA9IHNpemUgPT4ge1xuICAgIGlmIChzaXplKSB7XG4gICAgICByZXR1cm4gZ3JvdXAoc2l6ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZuKGkrKyk7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuZXh0XG4gIH07XG59O1xuXG5jb25zdCBhcnIgPSBpbnB1dCA9PlxuICB3cmFwKGkgPT4gKHtcbiAgICB2YWx1ZTogaW5wdXRbaV0sXG4gICAgZG9uZTogaW5wdXQubGVuZ3RoID09PSBpLFxuICAgIGtleTogaVxuICB9KSk7XG5cbmNvbnN0IGl0dHIgPSBpbnB1dCA9PlxuICB3cmFwKGkgPT4ge1xuICAgIGNvbnN0IGl0ZW0gPSBpbnB1dC5uZXh0KCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZG9uZTogaXRlbS5kb25lLFxuICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICBrZXk6IGlcbiAgICB9O1xuICB9KTtcblxuY29uc3Qgb2JqID0gaW5wdXQgPT4ge1xuICBjb25zdCBva2V5cyA9IGtleXMoaW5wdXQpO1xuXG4gIHJldHVybiB3cmFwKGkgPT4ge1xuICAgIGNvbnN0IGtleSA9IG9rZXlzW2ldO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBpbnB1dFtrZXldLFxuICAgICAgZG9uZTogb2tleXMubGVuZ3RoID09PSBpLFxuICAgICAga2V5XG4gICAgfTtcbiAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlucHV0ID0+IHtcbiAgaWYgKGlzQXJyYXkoaW5wdXQpKSB7XG4gICAgcmV0dXJuIGFycihpbnB1dCk7XG4gIH1cblxuICBpZiAoaW5wdXRbU3ltYm9sLml0ZXJhdG9yXSkge1xuICAgIHJldHVybiBpdHRyKGlucHV0W1N5bWJvbC5pdGVyYXRvcl0oKSk7XG4gIH1cblxuICByZXR1cm4gb2JqKGlucHV0KTtcbn07XG4iXSwibmFtZXMiOlsid3JhcCIsImkiLCJncm91cCIsImlzRmluaXRlIiwic2l6ZSIsImJ1aWxkQXJyYXkiLCJtYXAiLCJuZXh0IiwidW50aWwiLCJmbiIsImFyciIsImlucHV0IiwibGVuZ3RoIiwiaXR0ciIsIml0ZW0iLCJkb25lIiwidmFsdWUiLCJvYmoiLCJva2V5cyIsImtleXMiLCJrZXkiLCJtb2R1bGUiLCJpc0FycmF5IiwiU3ltYm9sIiwiaXRlcmF0b3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQU9BLElBQU1BLE9BQU8sU0FBUEEsSUFBTyxLQUFNO01BQ2JDLElBQUksQ0FBUjs7TUFFTUMsUUFBUSxTQUFSQSxLQUFRLE9BQVE7UUFDaEJDLFNBQVNDLElBQVQsQ0FBSixFQUFvQjthQUNYQyxXQUFXRCxJQUFYLEVBQWlCRSxHQUFqQixDQUFxQkMsSUFBckIsQ0FBUDs7O1dBR0tDLGVBQU07YUFBTUQsTUFBTjtLQUFOLENBQVA7R0FMRjs7TUFRTUEsT0FBTyxTQUFQQSxJQUFPLE9BQVE7UUFDZkgsSUFBSixFQUFVO2FBQ0RGLE1BQU1FLElBQU4sQ0FBUDs7O1dBR0tLLEdBQUdSLEdBQUgsQ0FBUDtHQUxGOztTQVFPOztHQUFQO0NBbkJGOztBQXdCQSxJQUFNUyxNQUFNLFNBQU5BLEdBQU07U0FDVlYsS0FBSztXQUFNO2FBQ0ZXLE1BQU1WLENBQU4sQ0FERTtZQUVIVSxNQUFNQyxNQUFOLEtBQWlCWCxDQUZkO1dBR0pBO0tBSEY7R0FBTCxDQURVO0NBQVo7O0FBT0EsSUFBTVksT0FBTyxTQUFQQSxJQUFPO1NBQ1hiLEtBQUssYUFBSztRQUNGYyxPQUFPSCxNQUFNSixJQUFOLEVBQWI7O1dBRU87WUFDQ08sS0FBS0MsSUFETjthQUVFRCxLQUFLRSxLQUZQO1dBR0FmO0tBSFA7R0FIRixDQURXO0NBQWI7O0FBV0EsSUFBTWdCLE1BQU0sU0FBTkEsR0FBTSxRQUFTO01BQ2JDLFFBQVFDLFNBQUtSLEtBQUwsQ0FBZDs7U0FFT1gsS0FBSyxhQUFLO1FBQ1RvQixNQUFNRixNQUFNakIsQ0FBTixDQUFaOztXQUVPO2FBQ0VVLE1BQU1TLEdBQU4sQ0FERjtZQUVDRixNQUFNTixNQUFOLEtBQWlCWCxDQUZsQjs7S0FBUDtHQUhLLENBQVA7Q0FIRjs7QUFjQW9CLGtCQUFBLEdBQWlCLGlCQUFTO01BQ3BCQyxPQUFRWCxLQUFSLENBQUosRUFBb0I7V0FDWEQsSUFBSUMsS0FBSixDQUFQOzs7TUFHRUEsTUFBTVksT0FBT0MsUUFBYixDQUFKLEVBQTRCO1dBQ25CWCxLQUFLRixNQUFNWSxPQUFPQyxRQUFiLEdBQUwsQ0FBUDs7O1NBR0tQLElBQUlOLEtBQUosQ0FBUDtDQVRGOzs7Ozs7OzsifQ==