sequency
Version:
Functional sequences for processing iterable data in JavaScript
41 lines • 1.42 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Plus = void 0;
var Sequence_1 = require("./Sequence");
var AppendIterator = /** @class */ (function () {
function AppendIterator(first, second) {
this.first = first;
this.second = second;
}
AppendIterator.prototype.next = function (value) {
var item1 = this.first.next();
if (!item1.done) {
return { done: false, value: item1.value };
}
var item2 = this.second.next();
if (!item2.done) {
return { done: false, value: item2.value };
}
return { done: true, value: undefined };
};
return AppendIterator;
}());
var Plus = /** @class */ (function () {
function Plus() {
}
Plus.prototype.plus = function (data) {
if ((0, Sequence_1.isSequence)(data)) {
return (0, Sequence_1.createSequence)(new AppendIterator(this.iterator, data.iterator));
}
else if (data instanceof Array) {
var iterator = data[Symbol.iterator]();
return (0, Sequence_1.createSequence)(new AppendIterator(this.iterator, iterator));
}
else {
var iterator = [data][Symbol.iterator]();
return (0, Sequence_1.createSequence)(new AppendIterator(this.iterator, iterator));
}
};
return Plus;
}());
exports.Plus = Plus;
//# sourceMappingURL=plus.js.map