UNPKG

@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

45 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OrderedEnumerable = void 0; const enumerable_1 = require("./enumerable"); const linqts_1 = require("linqts"); class OrderedEnumerable extends enumerable_1.Enumerable { keySelectors; descending; constructor(items, keySelectors, descending) { const linq = new linqts_1.List(items); 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(sortedItems.ToArray()); this.keySelectors = keySelectors; this.descending = descending; } ThenBy(keySelector) { return new OrderedEnumerable(this.ToArray(), [...this.keySelectors, keySelector], [...this.descending, false]); } ThenByDescending(keySelector) { return new OrderedEnumerable(this.ToArray(), [...this.keySelectors, keySelector], [...this.descending, true]); } Where(predicate) { const filtered = super.Where(predicate).ToArray(); return new OrderedEnumerable(filtered, this.keySelectors, this.descending); } Take(amount) { const linq = new linqts_1.List(this.ToArray()); const taken = linq.Take(amount).ToArray(); return new OrderedEnumerable(taken, this.keySelectors, this.descending); } Skip(amount) { const linq = new linqts_1.List(this.ToArray()); const skipped = linq.Skip(amount).ToArray(); return new OrderedEnumerable(skipped, this.keySelectors, this.descending); } } exports.OrderedEnumerable = OrderedEnumerable; //# sourceMappingURL=ordered-enumerable.js.map