@softchef/cdk-iot-device-management
Version:
IoT device management is composed of things, thing types, thing groups, jobs, files API services. The constructs can be used independently, that are based on full-managed service to create an API Gateway & Lambda function.
40 lines (32 loc) • 666 B
JavaScript
/**
* Obliterator Chain Function
* ===========================
*
* Variadic function combining the given iterators.
*/
var Iterator = require('./iterator.js');
/**
* Chain.
*
* @param {...Iterator} iterators - Target iterators.
* @return {Iterator}
*/
module.exports = function chain() {
var iterators = arguments,
current,
i = -1;
return new Iterator(function iterate() {
if (!current) {
i++;
if (i >= iterators.length)
return {done: true};
current = iterators[i];
}
var step = current.next();
if (step.done) {
current = null;
return iterate();
}
return step;
});
};