@algochad/prisma-core
Version:
A comprehensive NestJS library that provides EF-Core-like operations using Prisma and GraphQL. Features LINQ-style query builders, advanced data manipulation, GraphQL integration with genql, and a unified API for both Prisma and GraphQL operations. Includ
31 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OrderedAsyncEnumerable = void 0;
const async_enumerable_1 = require("./async-enumerable");
const linqts_1 = require("linqts");
class OrderedAsyncEnumerable extends async_enumerable_1.AsyncEnumerable {
keySelectors;
descending;
constructor(source, keySelectors, descending) {
const linq = new linqts_1.List(source);
let sortedItems = linq;
for (let i = 0; i < keySelectors.length; i++) {
const keySelector = keySelectors[i];
const isDescending = descending[i];
sortedItems = isDescending
? sortedItems.OrderByDescending(keySelector)
: sortedItems.OrderBy(keySelector);
}
super(linq);
this.keySelectors = keySelectors;
this.descending = descending;
}
ThenBy(keySelector) {
return new OrderedAsyncEnumerable(this.ToArray(), [...this.keySelectors, keySelector], [...this.descending, false]);
}
ThenByDescending(keySelector) {
return new OrderedAsyncEnumerable(this.ToArray(), [...this.keySelectors, keySelector], [...this.descending, true]);
}
}
exports.OrderedAsyncEnumerable = OrderedAsyncEnumerable;
//# sourceMappingURL=ordered-async-enumerable.js.map