linq-iterator
Version:
linq.js - LINQ for JavaScript with iterator support
33 lines (30 loc) • 772 B
JavaScript
var linq = require('linq');
if(!linq.prototype[Symbol.iterator]) {
linq.prototype[Symbol.iterator] = function() {
var enumerator = this.getEnumerator();
return {
next: function() {
if(enumerator.moveNext()) {
return {
done: false,
value: enumerator.current()
};
} else return { done: true };
}
}
}
}
var extendIt = true;
linq.extendArray = function() {
if(extendIt) {
extendIt = false;
Object.keys(linq.prototype).forEach(function(key) {
if(Array.prototype[key]) return;
Array.prototype[key] = function() {
var l = linq.from(this);
return l[key].apply(l, arguments);
}
});
}
}
module.exports = linq;