UNPKG

linq-extensions

Version:

Linq-like extension methods for JavaScript and TypeScript builtin collections

33 lines 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OrderedIterable = void 0; const iterable_1 = require("../iterable"); const ordering_1 = require("./ordering/ordering"); const types_1 = require("../types"); class OrderedIterable extends iterable_1.Iterable { constructor(originalIterable, ordering) { super(); this.originalIterable = originalIterable; this.orderings = []; this.orderings.push(ordering); } thenBy(selector, comparator = types_1.defaultComparator) { this.orderings.push(new ordering_1.Ordering(selector, comparator, 'asc')); return this; } thenByDescending(selector, comparator = types_1.defaultComparator) { this.orderings.push(new ordering_1.Ordering(selector, comparator, 'desc')); return this; } *[Symbol.iterator]() { let result = this.originalIterable; for (let i = this.orderings.length - 1; i >= 0; i--) { result = this.orderings[i].execute(result); } for (const element of result) { yield element; } } } exports.OrderedIterable = OrderedIterable; //# sourceMappingURL=ordered-iterable.js.map