@tsdotnet/linq
Version:
A familiar set of functions that operate on JavaScript iterables (ES2015+) in a similar way to .NET's LINQ does with enumerables.
35 lines (32 loc) • 861 B
JavaScript
import LinqBase from './LinqBase.js';
import select from './transforms/select.js';
import selectMany from './transforms/selectMany.js';
class Linq extends LinqBase {
source;
constructor(source) {
super(source, source => new Linq(source));
this.source = source;
}
[Symbol.iterator]() {
return this.source[Symbol.iterator]();
}
filter(filter) {
return super.filter(filter);
}
transform(transform) {
return new Linq(transform(this.source));
}
select(selector) {
return this.transform(select(selector));
}
selectMany(selector) {
return this.transform(selectMany(selector));
}
}
function linq(source) {
if (source instanceof Linq)
return source;
return new Linq(source);
}
export { Linq, linq as default };
//# sourceMappingURL=linq.js.map