UNPKG

pop-iterate

Version:

A polymorphic iterate operator for arrays and other iterables

23 lines (19 loc) 698 B
"use strict"; var ArrayIterator = require("./array-iterator"); var ObjectIterator = require("./object-iterator"); module.exports = iterate; function iterate(iterable, start, stop, step) { if (!iterable) { return empty; } else if (Array.isArray(iterable)) { return new ArrayIterator(iterable, start, stop, step); } else if (typeof iterable.next === "function") { return iterable; } else if (typeof iterable.iterate === "function") { return iterable.iterate(start, stop, step); } else if (typeof iterable === "object") { return new ObjectIterator(iterable); } else { throw new TypeError("Can't iterate " + iterable); } }