UNPKG

moltres-utils

Version:
79 lines (59 loc) 2.55 kB
"use strict"; require("core-js/modules/es6.object.define-property"); Object.defineProperty(exports, "__esModule", { value: true }); exports.baseIterator = exports.default = void 0; var _constants = require("../constants"); var _arrayLikeIterator = _interopRequireDefault(require("../lang/arrayLikeIterator")); var _curry = _interopRequireDefault(require("./curry")); var _isArrayLike = _interopRequireDefault(require("../lang/isArrayLike")); var _isIterable = _interopRequireDefault(require("../lang/isIterable")); var _isIterator = _interopRequireDefault(require("../lang/isIterator")); var _isObjectLike = _interopRequireDefault(require("../lang/isObjectLike")); var _iteratorResolver = _interopRequireDefault(require("./iteratorResolver")); var _objectIterator = _interopRequireDefault(require("../lang/objectIterator")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var baseIterator = function baseIterator(value) { var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'START'; if ((0, _isIterator.default)(value)) { return (0, _iteratorResolver.default)(value, start); } if ((0, _isArrayLike.default)(value)) { return (0, _arrayLikeIterator.default)(value, start); } if ((0, _isIterable.default)(value)) { return (0, _iteratorResolver.default)(value[_constants.SYMBOL_ITERATOR](), start); } if ((0, _isObjectLike.default)(value)) { return (0, _objectIterator.default)(value, start); } throw new Error("iterator method expected to receive an iterable value. Instead the method was given ".concat(value, ".")); }; /** * This method generates an iterator for the given value * * @function * @since v0.0.11 * @category common * @param {Function} fn The iteratee Function * @param {*} collection The collection or iterator to iterate over * @returns {*} The final value returned when the iteratee returns done or `undefined` * @example * * iterator(['a', 'b', 'c']) * //=> { next: () => { value: string, index: number, kdx: umber, done: boolean }} * * iterator('abc') * //=> { next: () => { value: string, index: number, kdx: umber, done: boolean }} * * iterator({ a: 1, b: 2, c: 3 }) * //=> { next: () => { value: number, key: string, kdx: string, done: boolean }} */ exports.baseIterator = baseIterator; var iterator = (0, _curry.default)(baseIterator); iterator.END = 'END'; iterator.START = 'START'; var _default = iterator; exports.default = _default; //# sourceMappingURL=iterator.js.map