import { IterableX } from '../../iterable/iterablex.js'; import { orderBy, orderByDescending, OrderedIterableX } from '../../iterable/operators/orderby.js'; import { thenBy as _thenBy, thenByDescending as _thenByDescending, } from '../../iterable/operators/orderby.js'; /** * @ignore */ export function orderByProto( this: IterableX, keySelector: (item: TSource) => TKey, comparer?: (fst: TKey, snd: TKey) => number ): OrderedIterableX { return orderBy(keySelector, comparer)(this); } /** * @ignore */ export function orderByDescendingProto( this: IterableX, keySelector: (item: TSource) => TKey, comparer?: (fst: TKey, snd: TKey) => number ): OrderedIterableX { return orderByDescending(keySelector, comparer)(this); } IterableX.prototype.orderBy = orderByProto; IterableX.prototype.orderByDescending = orderByDescendingProto; export declare namespace iterable { let thenBy: typeof _thenBy; let thenByDescending: typeof _thenByDescending; } declare module '../../iterable/iterablex' { interface IterableX { orderBy: typeof orderByProto; orderByDescending: typeof orderByDescendingProto; } }