UNPKG

apr-engine-iterator

Version:
91 lines (72 loc) 5.75 kB
(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==