inqjs 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +34 -12
  2. package/dist/Query.d.ts +15 -1
  3. package/dist/Query.d.ts.map +1 -1
  4. package/dist/Query.js +44 -3
  5. package/dist/Query.js.map +1 -1
  6. package/dist/async/AsyncQuery.d.ts +20 -7
  7. package/dist/async/AsyncQuery.d.ts.map +1 -1
  8. package/dist/async/AsyncQuery.js +52 -9
  9. package/dist/async/AsyncQuery.js.map +1 -1
  10. package/dist/async/operators/concatAsync.d.ts +1 -1
  11. package/dist/async/operators/concatAsync.d.ts.map +1 -1
  12. package/dist/async/operators/concatAsync.js.map +1 -1
  13. package/dist/async/operators/exceptAsync.d.ts +1 -1
  14. package/dist/async/operators/exceptAsync.d.ts.map +1 -1
  15. package/dist/async/operators/exceptAsync.js.map +1 -1
  16. package/dist/async/operators/groupByAsync.d.ts +3 -0
  17. package/dist/async/operators/groupByAsync.d.ts.map +1 -0
  18. package/dist/async/operators/groupByAsync.js +22 -0
  19. package/dist/async/operators/groupByAsync.js.map +1 -0
  20. package/dist/async/operators/intersectAsync.d.ts +1 -1
  21. package/dist/async/operators/intersectAsync.d.ts.map +1 -1
  22. package/dist/async/operators/intersectAsync.js.map +1 -1
  23. package/dist/async/operators/joinAsync.d.ts +2 -0
  24. package/dist/async/operators/joinAsync.d.ts.map +1 -0
  25. package/dist/async/operators/joinAsync.js +25 -0
  26. package/dist/async/operators/joinAsync.js.map +1 -0
  27. package/dist/async/operators/orderByManyAsync.d.ts +6 -0
  28. package/dist/async/operators/orderByManyAsync.d.ts.map +1 -0
  29. package/dist/async/operators/orderByManyAsync.js +25 -0
  30. package/dist/async/operators/orderByManyAsync.js.map +1 -0
  31. package/dist/async/operators/selectManyAsync.d.ts +2 -0
  32. package/dist/async/operators/selectManyAsync.d.ts.map +1 -0
  33. package/dist/async/operators/selectManyAsync.js +13 -0
  34. package/dist/async/operators/selectManyAsync.js.map +1 -0
  35. package/dist/async/operators/unionAsync.d.ts +1 -1
  36. package/dist/async/operators/unionAsync.d.ts.map +1 -1
  37. package/dist/async/operators/unionAsync.js.map +1 -1
  38. package/dist/operators/groupBy.d.ts +8 -0
  39. package/dist/operators/groupBy.d.ts.map +1 -0
  40. package/dist/operators/groupBy.js +31 -0
  41. package/dist/operators/groupBy.js.map +1 -0
  42. package/dist/operators/join.d.ts +2 -0
  43. package/dist/operators/join.d.ts.map +1 -0
  44. package/dist/operators/join.js +25 -0
  45. package/dist/operators/join.js.map +1 -0
  46. package/dist/operators/orderByMany.d.ts +6 -0
  47. package/dist/operators/orderByMany.d.ts.map +1 -0
  48. package/dist/operators/orderByMany.js +18 -0
  49. package/dist/operators/orderByMany.js.map +1 -0
  50. package/dist/operators/selectMany.d.ts +2 -0
  51. package/dist/operators/selectMany.d.ts.map +1 -0
  52. package/dist/operators/selectMany.js +12 -0
  53. package/dist/operators/selectMany.js.map +1 -0
  54. package/dist/utils/guards.d.ts +3 -0
  55. package/dist/utils/guards.d.ts.map +1 -1
  56. package/dist/utils/guards.js +14 -0
  57. package/dist/utils/guards.js.map +1 -1
  58. package/package.json +23 -3
package/README.md CHANGED
@@ -12,14 +12,15 @@ A lightweight, dependency-free LINQ engine for TypeScript and JavaScript with co
12
12
 
13
13
  ✨ **Comprehensive LINQ Operations**
14
14
  - Filtering: `where`, `distinct`
15
- - Projection: `select`
16
- - Ordering: `orderBy`
15
+ - Projection: `select`, `selectMany`
16
+ - Ordering: `orderBy`, `thenBy`
17
17
  - Partitioning: `skip`, `take`
18
18
  - Aggregation: `sum`, `min`, `max`, `count`
19
19
  - Quantifiers: `any`, `all`
20
20
  - Element: `first`
21
21
  - Set Operations: `union`, `intersect`, `except`
22
22
  - Sequence: `append`, `prepend`, `concat`
23
+ - Grouping & Joining: `groupBy`, `join`
23
24
 
24
25
  🚀 **Lazy Evaluation**
25
26
  - Operators are lazily evaluated using generators
@@ -27,7 +28,7 @@ A lightweight, dependency-free LINQ engine for TypeScript and JavaScript with co
27
28
 
28
29
  ⚡ **Async Support**
29
30
  - Full async/await support with `AsyncQuery`
30
- - Works with `AsyncIterable<T>`
31
+ - Works with `Iterable<T>` and `AsyncIterable<T>`
31
32
 
32
33
  📦 **JSON Querying**
33
34
  - Query JSON data directly with `fromJson`, `fromJsonArray`, `fromJsonObject`
@@ -46,6 +47,20 @@ A lightweight, dependency-free LINQ engine for TypeScript and JavaScript with co
46
47
  npm install inqjs
47
48
  ```
48
49
 
50
+ ## Imports
51
+
52
+ ```typescript
53
+ import { from, fromAsync, fromJsonArray } from 'inqjs';
54
+ import { fromAsync as fromAsyncOnly } from 'inqjs/async';
55
+ import { fromJson } from 'inqjs/json';
56
+ ```
57
+
58
+ CommonJS is supported too:
59
+
60
+ ```javascript
61
+ const { from, fromAsync } = require('inqjs');
62
+ ```
63
+
49
64
  ## Quick Start
50
65
 
51
66
  ### Basic Query (Sync)
@@ -122,7 +137,7 @@ from(list1).except(list2).toArray();
122
137
  ### Query Creation
123
138
 
124
139
  - `from(iterable)` - Create query from any iterable
125
- - `fromAsync(asyncIterable)` - Create async query
140
+ - `fromAsync(iterableOrAsyncIterable)` - Create async query
126
141
  - `fromJson(jsonString)` - Parse and query JSON
127
142
  - `fromJsonArray(jsonString)` - Parse JSON array
128
143
  - `fromJsonObject(jsonString)` - Parse JSON object
@@ -131,14 +146,21 @@ from(list1).except(list2).toArray();
131
146
 
132
147
  - `where(predicate)` - Filter elements
133
148
  - `select(selector)` - Transform elements
149
+ - `selectMany(collectionSelector, resultSelector?)` - Project and flatten nested sequences
134
150
  - `distinct(keySelector?)` - Remove duplicates
135
151
 
136
152
  ### Ordering & Partitioning
137
153
 
138
154
  - `orderBy(keySelector?, comparer?)` - Sort elements
155
+ - `thenBy(keySelector?, comparer?)` - Add a secondary sort after `orderBy`
139
156
  - `skip(count)` - Skip first N elements
140
157
  - `take(count)` - Take first N elements
141
158
 
159
+ ### Grouping & Joining
160
+
161
+ - `groupBy(keySelector, elementSelector?)` - Group elements by key
162
+ - `join(inner, outerKeySelector, innerKeySelector, resultSelector)` - Inner join two sequences by matching keys
163
+
142
164
  ### Aggregation
143
165
 
144
166
  - `sum(selector?)` - Sum numeric values
@@ -175,16 +197,14 @@ from(list1).except(list2).toArray();
175
197
  ## Testing
176
198
 
177
199
  ```bash
178
- # Run TypeScript tests (Vitest)
200
+ # Build, run TypeScript tests, and run JavaScript smoke tests
179
201
  npm test
180
202
 
181
- # Run JavaScript tests
182
- node tests/query.test.js
203
+ # Run just the JavaScript smoke tests
204
+ npm run test:js
183
205
  ```
184
206
 
185
- **Test Coverage**: 93 tests across TypeScript and JavaScript
186
- - 70 TypeScript tests (Vitest)
187
- - 23 Pure JavaScript tests
207
+ **Test Coverage**: TypeScript unit/package smoke tests plus pure JavaScript consumer smoke tests.
188
208
 
189
209
  ## Examples
190
210
 
@@ -202,8 +222,10 @@ See the `examples/` directory for more usage examples:
202
222
  ## Limitations
203
223
 
204
224
  - `orderBy` materializes the sequence (requires full iteration to sort)
205
- - No `join` or `groupBy` operators (by design)
206
- - Set operations (`union`, `intersect`, `except`) materialize the second sequence
225
+ - Set operations (`union`, `intersect`, `except`) store keys in memory; `intersect` and `except` read the second sequence before yielding results
226
+ - Equality uses JavaScript `Set` semantics on each value or selected key; object values compare by reference unless you provide a `keySelector`
227
+ - Generator-backed queries keep the source's natural behavior, so a one-shot generator can only be consumed once
228
+ - `groupBy` and `join` materialize lookup data before yielding results
207
229
 
208
230
  ## Development
209
231
 
package/dist/Query.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { Grouping } from './operators/groupBy';
2
+ import { SortCriterion } from './operators/orderByMany';
1
3
  import { AsyncQuery } from './async/AsyncQuery';
2
4
  export declare class Query<T> implements Iterable<T> {
3
5
  private readonly _source;
@@ -6,7 +8,11 @@ export declare class Query<T> implements Iterable<T> {
6
8
  static from<T>(source: Iterable<T>): Query<T>;
7
9
  where(predicate: (item: T, index?: number) => boolean): Query<T>;
8
10
  select<U>(selector: (item: T, index?: number) => U): Query<U>;
9
- orderBy<TKey = T>(keySelector?: (item: T) => TKey, comparer?: (a: TKey, b: TKey) => number): Query<T>;
11
+ orderBy<TKey = T>(keySelector?: (item: T) => TKey, comparer?: (a: TKey, b: TKey) => number): OrderedQuery<T>;
12
+ groupBy<TKey, TElement = T>(keySelector: (item: T) => TKey, elementSelector?: (item: T) => TElement): Query<Grouping<TKey, TElement>>;
13
+ join<TInner, TKey, TResult>(inner: Iterable<TInner>, outerKeySelector: (item: T) => TKey, innerKeySelector: (item: TInner) => TKey, resultSelector: (outer: T, inner: TInner) => TResult): Query<TResult>;
14
+ selectMany<U>(collectionSelector: (item: T, index?: number) => Iterable<U>): Query<U>;
15
+ selectMany<U, R>(collectionSelector: (item: T, index?: number) => Iterable<U>, resultSelector: (item: T, collectionItem: U) => R): Query<R>;
10
16
  skip(count: number): Query<T>;
11
17
  distinct<TKey = T>(keySelector?: (item: T) => TKey): Query<T>;
12
18
  any(predicate?: (item: T) => boolean): boolean;
@@ -26,6 +32,14 @@ export declare class Query<T> implements Iterable<T> {
26
32
  except<TKey = T>(other: Iterable<T>, keySelector?: (item: T) => TKey): Query<T>;
27
33
  toAsync(): AsyncQuery<T>;
28
34
  }
35
+ export declare class OrderedQuery<T> extends Query<T> {
36
+ private readonly _orderedSource;
37
+ private readonly _criteria;
38
+ constructor(_orderedSource: Iterable<T>, _criteria: ReadonlyArray<SortCriterion<T>>);
39
+ thenBy<TKey = T>(keySelector?: (item: T) => TKey, comparer?: (a: TKey, b: TKey) => number): OrderedQuery<T>;
40
+ }
29
41
  export declare function from<T>(source: Iterable<T>): Query<T>;
30
42
  export { fromJson, fromJsonArray, fromJsonObject } from './json/fromJson';
43
+ export { fromAsync } from './async/AsyncQuery';
44
+ export { Grouping } from './operators/groupBy';
31
45
  //# sourceMappingURL=Query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
package/dist/Query.js CHANGED
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fromJsonObject = exports.fromJsonArray = exports.fromJson = exports.Query = void 0;
3
+ exports.Grouping = exports.fromAsync = exports.fromJsonObject = exports.fromJsonArray = exports.fromJson = exports.OrderedQuery = exports.Query = void 0;
4
4
  exports.from = from;
5
5
  const guards_1 = require("./utils/guards");
6
6
  const comparers_1 = require("./utils/comparers");
7
7
  const where_1 = require("./operators/where");
8
8
  const select_1 = require("./operators/select");
9
- const orderBy_1 = require("./operators/orderBy");
10
9
  const skip_1 = require("./operators/skip");
11
10
  const distinct_1 = require("./operators/distinct");
12
11
  const any_1 = require("./operators/any");
@@ -24,6 +23,10 @@ const concat_1 = require("./operators/concat");
24
23
  const union_1 = require("./operators/union");
25
24
  const intersect_1 = require("./operators/intersect");
26
25
  const except_1 = require("./operators/except");
26
+ const groupBy_1 = require("./operators/groupBy");
27
+ const join_1 = require("./operators/join");
28
+ const selectMany_1 = require("./operators/selectMany");
29
+ const orderByMany_1 = require("./operators/orderByMany");
27
30
  const AsyncQuery_1 = require("./async/AsyncQuery");
28
31
  class Query {
29
32
  constructor(source) {
@@ -52,7 +55,26 @@ class Query {
52
55
  (0, guards_1.assertFunction)(keySelector, 'keySelector');
53
56
  if (comparer !== undefined)
54
57
  (0, guards_1.assertFunction)(comparer, 'comparer');
55
- return new Query((0, orderBy_1.orderBy)(this._source, keySelector, comparer));
58
+ return new OrderedQuery(this._source, [{ keySelector, comparer }]);
59
+ }
60
+ groupBy(keySelector, elementSelector = comparers_1.identity) {
61
+ (0, guards_1.assertFunction)(keySelector, 'keySelector');
62
+ if (elementSelector !== undefined)
63
+ (0, guards_1.assertFunction)(elementSelector, 'elementSelector');
64
+ return new Query((0, groupBy_1.groupBy)(this._source, keySelector, elementSelector));
65
+ }
66
+ join(inner, outerKeySelector, innerKeySelector, resultSelector) {
67
+ (0, guards_1.assertIterable)(inner, 'inner');
68
+ (0, guards_1.assertFunction)(outerKeySelector, 'outerKeySelector');
69
+ (0, guards_1.assertFunction)(innerKeySelector, 'innerKeySelector');
70
+ (0, guards_1.assertFunction)(resultSelector, 'resultSelector');
71
+ return new Query((0, join_1.join)(this._source, inner, outerKeySelector, innerKeySelector, resultSelector));
72
+ }
73
+ selectMany(collectionSelector, resultSelector) {
74
+ (0, guards_1.assertFunction)(collectionSelector, 'collectionSelector');
75
+ if (resultSelector !== undefined)
76
+ (0, guards_1.assertFunction)(resultSelector, 'resultSelector');
77
+ return new Query((0, selectMany_1.selectMany)(this._source, collectionSelector, resultSelector));
56
78
  }
57
79
  skip(count) {
58
80
  (0, guards_1.assertInteger)(count, 'count');
@@ -139,6 +161,21 @@ class Query {
139
161
  }
140
162
  }
141
163
  exports.Query = Query;
164
+ class OrderedQuery extends Query {
165
+ constructor(_orderedSource, _criteria) {
166
+ super((0, orderByMany_1.orderByMany)(_orderedSource, _criteria));
167
+ this._orderedSource = _orderedSource;
168
+ this._criteria = _criteria;
169
+ }
170
+ thenBy(keySelector = comparers_1.identity, comparer = comparers_1.defaultComparer) {
171
+ if (keySelector !== undefined)
172
+ (0, guards_1.assertFunction)(keySelector, 'keySelector');
173
+ if (comparer !== undefined)
174
+ (0, guards_1.assertFunction)(comparer, 'comparer');
175
+ return new OrderedQuery(this._orderedSource, [...this._criteria, { keySelector, comparer }]);
176
+ }
177
+ }
178
+ exports.OrderedQuery = OrderedQuery;
142
179
  function from(source) {
143
180
  return Query.from(source);
144
181
  }
@@ -147,4 +184,8 @@ var fromJson_1 = require("./json/fromJson");
147
184
  Object.defineProperty(exports, "fromJson", { enumerable: true, get: function () { return fromJson_1.fromJson; } });
148
185
  Object.defineProperty(exports, "fromJsonArray", { enumerable: true, get: function () { return fromJson_1.fromJsonArray; } });
149
186
  Object.defineProperty(exports, "fromJsonObject", { enumerable: true, get: function () { return fromJson_1.fromJsonObject; } });
187
+ var AsyncQuery_2 = require("./async/AsyncQuery");
188
+ Object.defineProperty(exports, "fromAsync", { enumerable: true, get: function () { return AsyncQuery_2.fromAsync; } });
189
+ var groupBy_2 = require("./operators/groupBy");
190
+ Object.defineProperty(exports, "Grouping", { enumerable: true, get: function () { return groupBy_2.Grouping; } });
150
191
  //# sourceMappingURL=Query.js.map
package/dist/Query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,18 @@
1
+ import { AsyncSortCriterion } from './operators/orderByManyAsync';
2
+ import { Grouping } from '../operators/groupBy';
1
3
  export declare class AsyncQuery<T> implements AsyncIterable<T> {
2
4
  private readonly _source;
3
- constructor(source: AsyncIterable<T>);
5
+ constructor(source: Iterable<T> | AsyncIterable<T>);
4
6
  [Symbol.asyncIterator](): AsyncIterator<T>;
5
7
  static from<T>(source: Iterable<T> | AsyncIterable<T>): AsyncQuery<T>;
8
+ private static wrap;
6
9
  where(predicate: (item: T, index?: number) => boolean | Promise<boolean>): AsyncQuery<T>;
7
10
  select<U>(selector: (item: T, index?: number) => U | Promise<U>): AsyncQuery<U>;
8
- orderBy<TKey = T>(keySelector?: (item: T) => TKey | Promise<TKey>, comparer?: (a: TKey, b: TKey) => number): AsyncQuery<T>;
11
+ orderBy<TKey = T>(keySelector?: (item: T) => TKey | Promise<TKey>, comparer?: (a: TKey, b: TKey) => number): OrderedAsyncQuery<T>;
12
+ groupBy<TKey, TElement = T>(keySelector: (item: T) => TKey | Promise<TKey>, elementSelector?: (item: T) => TElement | Promise<TElement>): AsyncQuery<Grouping<TKey, TElement>>;
13
+ join<TInner, TKey, TResult>(inner: Iterable<TInner> | AsyncIterable<TInner>, outerKeySelector: (item: T) => TKey | Promise<TKey>, innerKeySelector: (item: TInner) => TKey | Promise<TKey>, resultSelector: (outer: T, inner: TInner) => TResult | Promise<TResult>): AsyncQuery<TResult>;
14
+ selectMany<U>(collectionSelector: (item: T, index?: number) => Iterable<U> | AsyncIterable<U> | Promise<Iterable<U> | AsyncIterable<U>>): AsyncQuery<U>;
15
+ selectMany<U, R>(collectionSelector: (item: T, index?: number) => Iterable<U> | AsyncIterable<U> | Promise<Iterable<U> | AsyncIterable<U>>, resultSelector: (item: T, collectionItem: U) => R | Promise<R>): AsyncQuery<R>;
9
16
  skip(count: number): AsyncQuery<T>;
10
17
  distinct<TKey = T>(keySelector?: (item: T) => TKey | Promise<TKey>): AsyncQuery<T>;
11
18
  any(predicate?: (item: T) => boolean | Promise<boolean>): Promise<boolean>;
@@ -19,10 +26,16 @@ export declare class AsyncQuery<T> implements AsyncIterable<T> {
19
26
  count(predicate?: (item: T) => boolean | Promise<boolean>): Promise<number>;
20
27
  append(element: T): AsyncQuery<T>;
21
28
  prepend(element: T): AsyncQuery<T>;
22
- concat(other: AsyncIterable<T>): AsyncQuery<T>;
23
- union<TKey = T>(other: AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncQuery<T>;
24
- intersect<TKey = T>(other: AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncQuery<T>;
25
- except<TKey = T>(other: AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncQuery<T>;
29
+ concat(other: Iterable<T> | AsyncIterable<T>): AsyncQuery<T>;
30
+ union<TKey = T>(other: Iterable<T> | AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncQuery<T>;
31
+ intersect<TKey = T>(other: Iterable<T> | AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncQuery<T>;
32
+ except<TKey = T>(other: Iterable<T> | AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncQuery<T>;
26
33
  }
27
- export declare function fromAsync<T>(source: AsyncIterable<T>): AsyncQuery<T>;
34
+ export declare class OrderedAsyncQuery<T> extends AsyncQuery<T> {
35
+ private readonly _orderedSource;
36
+ private readonly _criteria;
37
+ constructor(_orderedSource: AsyncIterable<T>, _criteria: ReadonlyArray<AsyncSortCriterion<T>>);
38
+ thenBy<TKey = T>(keySelector?: (item: T) => TKey | Promise<TKey>, comparer?: (a: TKey, b: TKey) => number): OrderedAsyncQuery<T>;
39
+ }
40
+ export declare function fromAsync<T>(source: Iterable<T> | AsyncIterable<T>): AsyncQuery<T>;
28
41
  //# sourceMappingURL=AsyncQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncQuery.d.ts","sourceRoot":"","sources":["../../src/async/AsyncQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsyncQuery.d.ts","sourceRoot":"","sources":["../../src/async/AsyncQuery.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAoB,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;gBAE/B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAK3C,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;WAInC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;mBAKtD,IAAI;IAMnB,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAKxF,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAK/E,OAAO,CAAC,IAAI,GAAG,CAAC,EACnB,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAmB,EAChE,QAAQ,GAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,MAAwB,GACzD,iBAAiB,CAAC,CAAC,CAAC;IAMhB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,EAC7B,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC9C,eAAe,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAmB,GAC7E,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAMhC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAC7B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAC/C,gBAAgB,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACnD,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACxD,cAAc,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GACxE,UAAU,CAAC,OAAO,CAAC;IAQf,UAAU,CAAC,CAAC,EACf,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAC1H,UAAU,CAAC,CAAC,CAAC;IACT,UAAU,CAAC,CAAC,EAAE,CAAC,EAClB,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EACzH,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC/D,UAAU,CAAC,CAAC,CAAC;IAUT,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAMlC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAmB,GAAG,UAAU,CAAC,CAAC,CAAC;IAKnG,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzE,GAAG,CAAC,QAAQ,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvF,GAAG,CAAC,QAAQ,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKnG,GAAG,CAAC,QAAQ,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKnG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKtE,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAIvB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAMlC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3E,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIjC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIlC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAK5D,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAmB,GAAG,UAAU,CAAC,CAAC,CAAC;IAMvI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAmB,GAAG,UAAU,CAAC,CAAC,CAAC;IAM3I,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAmB,GAAG,UAAU,CAAC,CAAC,CAAC;CAKlJ;AAED,qBAAa,iBAAiB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAE/C,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,EAChC,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAK7D,MAAM,CAAC,IAAI,GAAG,CAAC,EAClB,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAmB,EAChE,QAAQ,GAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,MAAwB,GACzD,iBAAiB,CAAC,CAAC,CAAC;CAK1B;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAElF"}
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AsyncQuery = void 0;
3
+ exports.OrderedAsyncQuery = exports.AsyncQuery = void 0;
4
4
  exports.fromAsync = fromAsync;
5
5
  const guards_1 = require("../utils/guards");
6
6
  const comparers_1 = require("../utils/comparers");
7
7
  const whereAsync_1 = require("./operators/whereAsync");
8
8
  const selectAsync_1 = require("./operators/selectAsync");
9
- const orderByAsync_1 = require("./operators/orderByAsync");
10
9
  const skipAsync_1 = require("./operators/skipAsync");
11
10
  const distinctAsync_1 = require("./operators/distinctAsync");
12
11
  const anyAsync_1 = require("./operators/anyAsync");
@@ -24,20 +23,26 @@ const concatAsync_1 = require("./operators/concatAsync");
24
23
  const unionAsync_1 = require("./operators/unionAsync");
25
24
  const intersectAsync_1 = require("./operators/intersectAsync");
26
25
  const exceptAsync_1 = require("./operators/exceptAsync");
26
+ const groupByAsync_1 = require("./operators/groupByAsync");
27
+ const joinAsync_1 = require("./operators/joinAsync");
28
+ const selectManyAsync_1 = require("./operators/selectManyAsync");
29
+ const orderByManyAsync_1 = require("./operators/orderByManyAsync");
27
30
  class AsyncQuery {
28
31
  constructor(source) {
29
- this._source = source;
32
+ (0, guards_1.assertIterableLike)(source, 'source');
33
+ this._source = AsyncQuery.wrap(source);
30
34
  }
31
35
  [Symbol.asyncIterator]() {
32
36
  return this._source[Symbol.asyncIterator]();
33
37
  }
34
38
  static from(source) {
35
- async function* wrap(src) {
36
- for await (const item of src) {
37
- yield item;
38
- }
39
+ (0, guards_1.assertIterableLike)(source, 'source');
40
+ return new AsyncQuery(source);
41
+ }
42
+ static async *wrap(source) {
43
+ for await (const item of source) {
44
+ yield item;
39
45
  }
40
- return new AsyncQuery(wrap(source));
41
46
  }
42
47
  where(predicate) {
43
48
  (0, guards_1.assertFunction)(predicate, 'predicate');
@@ -52,7 +57,26 @@ class AsyncQuery {
52
57
  (0, guards_1.assertFunction)(keySelector, 'keySelector');
53
58
  if (comparer !== undefined)
54
59
  (0, guards_1.assertFunction)(comparer, 'comparer');
55
- return new AsyncQuery((0, orderByAsync_1.orderByAsync)(this._source, keySelector, comparer));
60
+ return new OrderedAsyncQuery(this._source, [{ keySelector, comparer }]);
61
+ }
62
+ groupBy(keySelector, elementSelector = comparers_1.identity) {
63
+ (0, guards_1.assertFunction)(keySelector, 'keySelector');
64
+ if (elementSelector !== undefined)
65
+ (0, guards_1.assertFunction)(elementSelector, 'elementSelector');
66
+ return new AsyncQuery((0, groupByAsync_1.groupByAsync)(this._source, keySelector, elementSelector));
67
+ }
68
+ join(inner, outerKeySelector, innerKeySelector, resultSelector) {
69
+ (0, guards_1.assertIterableLike)(inner, 'inner');
70
+ (0, guards_1.assertFunction)(outerKeySelector, 'outerKeySelector');
71
+ (0, guards_1.assertFunction)(innerKeySelector, 'innerKeySelector');
72
+ (0, guards_1.assertFunction)(resultSelector, 'resultSelector');
73
+ return new AsyncQuery((0, joinAsync_1.joinAsync)(this._source, inner, outerKeySelector, innerKeySelector, resultSelector));
74
+ }
75
+ selectMany(collectionSelector, resultSelector) {
76
+ (0, guards_1.assertFunction)(collectionSelector, 'collectionSelector');
77
+ if (resultSelector !== undefined)
78
+ (0, guards_1.assertFunction)(resultSelector, 'resultSelector');
79
+ return new AsyncQuery((0, selectManyAsync_1.selectManyAsync)(this._source, collectionSelector, resultSelector));
56
80
  }
57
81
  skip(count) {
58
82
  (0, guards_1.assertInteger)(count, 'count');
@@ -113,25 +137,44 @@ class AsyncQuery {
113
137
  return new AsyncQuery((0, prependAsync_1.prependAsync)(this._source, element));
114
138
  }
115
139
  concat(other) {
140
+ (0, guards_1.assertIterableLike)(other, 'other');
116
141
  return new AsyncQuery((0, concatAsync_1.concatAsync)(this._source, other));
117
142
  }
118
143
  union(other, keySelector = comparers_1.identity) {
144
+ (0, guards_1.assertIterableLike)(other, 'other');
119
145
  if (keySelector !== undefined)
120
146
  (0, guards_1.assertFunction)(keySelector, 'keySelector');
121
147
  return new AsyncQuery((0, unionAsync_1.unionAsync)(this._source, other, keySelector));
122
148
  }
123
149
  intersect(other, keySelector = comparers_1.identity) {
150
+ (0, guards_1.assertIterableLike)(other, 'other');
124
151
  if (keySelector !== undefined)
125
152
  (0, guards_1.assertFunction)(keySelector, 'keySelector');
126
153
  return new AsyncQuery((0, intersectAsync_1.intersectAsync)(this._source, other, keySelector));
127
154
  }
128
155
  except(other, keySelector = comparers_1.identity) {
156
+ (0, guards_1.assertIterableLike)(other, 'other');
129
157
  if (keySelector !== undefined)
130
158
  (0, guards_1.assertFunction)(keySelector, 'keySelector');
131
159
  return new AsyncQuery((0, exceptAsync_1.exceptAsync)(this._source, other, keySelector));
132
160
  }
133
161
  }
134
162
  exports.AsyncQuery = AsyncQuery;
163
+ class OrderedAsyncQuery extends AsyncQuery {
164
+ constructor(_orderedSource, _criteria) {
165
+ super((0, orderByManyAsync_1.orderByManyAsync)(_orderedSource, _criteria));
166
+ this._orderedSource = _orderedSource;
167
+ this._criteria = _criteria;
168
+ }
169
+ thenBy(keySelector = comparers_1.identity, comparer = comparers_1.defaultComparer) {
170
+ if (keySelector !== undefined)
171
+ (0, guards_1.assertFunction)(keySelector, 'keySelector');
172
+ if (comparer !== undefined)
173
+ (0, guards_1.assertFunction)(comparer, 'comparer');
174
+ return new OrderedAsyncQuery(this._orderedSource, [...this._criteria, { keySelector, comparer }]);
175
+ }
176
+ }
177
+ exports.OrderedAsyncQuery = OrderedAsyncQuery;
135
178
  function fromAsync(source) {
136
179
  return AsyncQuery.from(source);
137
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncQuery.js","sourceRoot":"","sources":["../../src/async/AsyncQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsyncQuery.js","sourceRoot":"","sources":["../../src/async/AsyncQuery.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function concatAsync<T>(source: AsyncIterable<T>, other: AsyncIterable<T>): AsyncIterable<T>;
1
+ export declare function concatAsync<T>(source: AsyncIterable<T>, other: Iterable<T> | AsyncIterable<T>): AsyncIterable<T>;
2
2
  //# sourceMappingURL=concatAsync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"concatAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/concatAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAGzG"}
1
+ {"version":3,"file":"concatAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/concatAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,WAAW,CAAC,CAAC,EAChC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GACtC,aAAa,CAAC,CAAC,CAAC,CAGlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"concatAsync.js","sourceRoot":"","sources":["../../../src/async/operators/concatAsync.ts"],"names":[],"mappings":";;AAAA,kCAGC;AAHM,KAAK,SAAS,CAAC,CAAC,WAAW,CAAI,MAAwB,EAAE,KAAuB;IACnF,KAAK,CAAC,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,CAAC,KAAK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"concatAsync.js","sourceRoot":"","sources":["../../../src/async/operators/concatAsync.ts"],"names":[],"mappings":";;AAAA,kCAMC;AANM,KAAK,SAAS,CAAC,CAAC,WAAW,CAC9B,MAAwB,EACxB,KAAqC;IAErC,KAAK,CAAC,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,CAAC,KAAK,CAAC;AACjB,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function exceptAsync<T, TKey = T>(source: AsyncIterable<T>, other: AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncIterable<T>;
1
+ export declare function exceptAsync<T, TKey = T>(source: AsyncIterable<T>, other: Iterable<T> | AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncIterable<T>;
2
2
  //# sourceMappingURL=exceptAsync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exceptAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/exceptAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAC1C,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAwB,GACtE,aAAa,CAAC,CAAC,CAAC,CAclB"}
1
+ {"version":3,"file":"exceptAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/exceptAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAC1C,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EACrC,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAwB,GACtE,aAAa,CAAC,CAAC,CAAC,CAclB"}
@@ -1 +1 @@
1
- {"version":3,"file":"exceptAsync.js","sourceRoot":"","sources":["../../../src/async/operators/exceptAsync.ts"],"names":[],"mappings":";;AAAA,kCAkBC;AAlBM,KAAK,SAAS,CAAC,CAAC,WAAW,CAC9B,MAAwB,EACxB,KAAuB,EACvB,cAAiD,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAQ;IAErE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAQ,CAAC;IAClC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IAC7B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"exceptAsync.js","sourceRoot":"","sources":["../../../src/async/operators/exceptAsync.ts"],"names":[],"mappings":";;AAAA,kCAkBC;AAlBM,KAAK,SAAS,CAAC,CAAC,WAAW,CAC9B,MAAwB,EACxB,KAAqC,EACrC,cAAiD,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAQ;IAErE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAQ,CAAC;IAClC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IAC7B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Grouping } from '../../operators/groupBy';
2
+ export declare function groupByAsync<T, TKey, TElement = T>(source: AsyncIterable<T>, keySelector: (item: T) => TKey | Promise<TKey>, elementSelector?: (item: T) => TElement | Promise<TElement>): AsyncIterable<Grouping<TKey, TElement>>;
3
+ //# sourceMappingURL=groupByAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupByAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/groupByAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,wBAAuB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,CAAC,EACrD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC9C,eAAe,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAA8C,GACxG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAiBzC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.groupByAsync = groupByAsync;
4
+ const groupBy_1 = require("../../operators/groupBy");
5
+ async function* groupByAsync(source, keySelector, elementSelector = ((item) => item)) {
6
+ const groups = new Map();
7
+ for await (const item of source) {
8
+ const key = await keySelector(item);
9
+ const element = await elementSelector(item);
10
+ const group = groups.get(key);
11
+ if (group) {
12
+ group.push(element);
13
+ }
14
+ else {
15
+ groups.set(key, [element]);
16
+ }
17
+ }
18
+ for (const [key, values] of groups) {
19
+ yield new groupBy_1.Grouping(key, values);
20
+ }
21
+ }
22
+ //# sourceMappingURL=groupByAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupByAsync.js","sourceRoot":"","sources":["../../../src/async/operators/groupByAsync.ts"],"names":[],"mappings":";;AAEA,oCAqBC;AAvBD,qDAAmD;AAE5C,KAAK,SAAS,CAAC,CAAC,YAAY,CAC/B,MAAwB,EACxB,WAA8C,EAC9C,kBAA6D,CAAC,CAAC,IAAO,EAAE,EAAE,CAAC,IAA2B,CAAC;IAEvG,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,kBAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;AACL,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function intersectAsync<T, TKey = T>(source: AsyncIterable<T>, other: AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncIterable<T>;
1
+ export declare function intersectAsync<T, TKey = T>(source: AsyncIterable<T>, other: Iterable<T> | AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncIterable<T>;
2
2
  //# sourceMappingURL=intersectAsync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"intersectAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/intersectAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAC7C,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAwB,GACtE,aAAa,CAAC,CAAC,CAAC,CAclB"}
1
+ {"version":3,"file":"intersectAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/intersectAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAC7C,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EACrC,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAwB,GACtE,aAAa,CAAC,CAAC,CAAC,CAclB"}
@@ -1 +1 @@
1
- {"version":3,"file":"intersectAsync.js","sourceRoot":"","sources":["../../../src/async/operators/intersectAsync.ts"],"names":[],"mappings":";;AAAA,wCAkBC;AAlBM,KAAK,SAAS,CAAC,CAAC,cAAc,CACjC,MAAwB,EACxB,KAAuB,EACvB,cAAiD,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAQ;IAErE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAQ,CAAC;IAClC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IAC7B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"intersectAsync.js","sourceRoot":"","sources":["../../../src/async/operators/intersectAsync.ts"],"names":[],"mappings":";;AAAA,wCAkBC;AAlBM,KAAK,SAAS,CAAC,CAAC,cAAc,CACjC,MAAwB,EACxB,KAAqC,EACrC,cAAiD,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAQ;IAErE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAQ,CAAC;IAClC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IAC7B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function joinAsync<TOuter, TInner, TKey, TResult>(outer: AsyncIterable<TOuter>, inner: Iterable<TInner> | AsyncIterable<TInner>, outerKeySelector: (item: TOuter) => TKey | Promise<TKey>, innerKeySelector: (item: TInner) => TKey | Promise<TKey>, resultSelector: (outer: TOuter, inner: TInner) => TResult | Promise<TResult>): AsyncIterable<TResult>;
2
+ //# sourceMappingURL=joinAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joinAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/joinAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAC1D,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAC5B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAC/C,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACxD,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACxD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAC7E,aAAa,CAAC,OAAO,CAAC,CAoBxB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.joinAsync = joinAsync;
4
+ async function* joinAsync(outer, inner, outerKeySelector, innerKeySelector, resultSelector) {
5
+ const lookup = new Map();
6
+ for await (const innerItem of inner) {
7
+ const key = await innerKeySelector(innerItem);
8
+ const group = lookup.get(key);
9
+ if (group) {
10
+ group.push(innerItem);
11
+ }
12
+ else {
13
+ lookup.set(key, [innerItem]);
14
+ }
15
+ }
16
+ for await (const outerItem of outer) {
17
+ const matches = lookup.get(await outerKeySelector(outerItem));
18
+ if (!matches)
19
+ continue;
20
+ for (const innerItem of matches) {
21
+ yield await resultSelector(outerItem, innerItem);
22
+ }
23
+ }
24
+ }
25
+ //# sourceMappingURL=joinAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joinAsync.js","sourceRoot":"","sources":["../../../src/async/operators/joinAsync.ts"],"names":[],"mappings":";;AAAA,8BA0BC;AA1BM,KAAK,SAAS,CAAC,CAAC,SAAS,CAC5B,KAA4B,EAC5B,KAA+C,EAC/C,gBAAwD,EACxD,gBAAwD,EACxD,cAA4E;IAE5E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,MAAM,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface AsyncSortCriterion<T, TKey = any> {
2
+ keySelector: (item: T) => TKey | Promise<TKey>;
3
+ comparer: (a: TKey, b: TKey) => number;
4
+ }
5
+ export declare function orderByManyAsync<T>(source: AsyncIterable<T>, criteria: ReadonlyArray<AsyncSortCriterion<T>>): AsyncIterable<T>;
6
+ //# sourceMappingURL=orderByManyAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderByManyAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/orderByManyAsync.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG;IAC7C,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;CAC1C;AAED,wBAAuB,gBAAgB,CAAC,CAAC,EACrC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAC/C,aAAa,CAAC,CAAC,CAAC,CAwBlB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.orderByManyAsync = orderByManyAsync;
4
+ async function* orderByManyAsync(source, criteria) {
5
+ const buffer = [];
6
+ for await (const item of source) {
7
+ buffer.push(item);
8
+ }
9
+ const itemsWithKeys = await Promise.all(buffer.map(async (item) => ({
10
+ item,
11
+ keys: await Promise.all(criteria.map(criterion => criterion.keySelector(item))),
12
+ })));
13
+ itemsWithKeys.sort((a, b) => {
14
+ for (let index = 0; index < criteria.length; index++) {
15
+ const comparison = criteria[index].comparer(a.keys[index], b.keys[index]);
16
+ if (comparison !== 0)
17
+ return comparison;
18
+ }
19
+ return 0;
20
+ });
21
+ for (const { item } of itemsWithKeys) {
22
+ yield item;
23
+ }
24
+ }
25
+ //# sourceMappingURL=orderByManyAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderByManyAsync.js","sourceRoot":"","sources":["../../../src/async/operators/orderByManyAsync.ts"],"names":[],"mappings":";;AAKA,4CA2BC;AA3BM,KAAK,SAAS,CAAC,CAAC,gBAAgB,CACnC,MAAwB,EACxB,QAA8C;IAE9C,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxB,IAAI;QACJ,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;KAClF,CAAC,CAAC,CACN,CAAC;IAEF,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,IAAI,CAAC;IACf,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function selectManyAsync<T, U, R = U>(source: AsyncIterable<T>, collectionSelector: (item: T, index: number) => Iterable<U> | AsyncIterable<U> | Promise<Iterable<U> | AsyncIterable<U>>, resultSelector?: (item: T, collectionItem: U) => R | Promise<R>): AsyncIterable<U | R>;
2
+ //# sourceMappingURL=selectManyAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectManyAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/selectManyAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAC9C,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EACxH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAChE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAQtB"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectManyAsync = selectManyAsync;
4
+ async function* selectManyAsync(source, collectionSelector, resultSelector) {
5
+ let index = 0;
6
+ for await (const item of source) {
7
+ const collection = await collectionSelector(item, index++);
8
+ for await (const collectionItem of collection) {
9
+ yield resultSelector ? await resultSelector(item, collectionItem) : collectionItem;
10
+ }
11
+ }
12
+ }
13
+ //# sourceMappingURL=selectManyAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectManyAsync.js","sourceRoot":"","sources":["../../../src/async/operators/selectManyAsync.ts"],"names":[],"mappings":";;AAAA,0CAYC;AAZM,KAAK,SAAS,CAAC,CAAC,eAAe,CAClC,MAAwB,EACxB,kBAAwH,EACxH,cAA+D;IAE/D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,IAAI,KAAK,EAAE,MAAM,cAAc,IAAI,UAAU,EAAE,CAAC;YAC5C,MAAM,cAAc,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QACvF,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function unionAsync<T, TKey = T>(source: AsyncIterable<T>, other: AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncIterable<T>;
1
+ export declare function unionAsync<T, TKey = T>(source: AsyncIterable<T>, other: Iterable<T> | AsyncIterable<T>, keySelector?: (item: T) => TKey | Promise<TKey>): AsyncIterable<T>;
2
2
  //# sourceMappingURL=unionAsync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unionAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/unionAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EACzC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAwB,GACtE,aAAa,CAAC,CAAC,CAAC,CAkBlB"}
1
+ {"version":3,"file":"unionAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/unionAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EACzC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EACrC,WAAW,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAwB,GACtE,aAAa,CAAC,CAAC,CAAC,CAkBlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"unionAsync.js","sourceRoot":"","sources":["../../../src/async/operators/unionAsync.ts"],"names":[],"mappings":";;AAAA,gCAsBC;AAtBM,KAAK,SAAS,CAAC,CAAC,UAAU,CAC7B,MAAwB,EACxB,KAAuB,EACvB,cAAiD,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAQ;IAErE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IAE7B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACf,CAAC;IACL,CAAC;IAED,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"unionAsync.js","sourceRoot":"","sources":["../../../src/async/operators/unionAsync.ts"],"names":[],"mappings":";;AAAA,gCAsBC;AAtBM,KAAK,SAAS,CAAC,CAAC,UAAU,CAC7B,MAAwB,EACxB,KAAqC,EACrC,cAAiD,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAQ;IAErE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IAE7B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACf,CAAC;IACL,CAAC;IAED,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare class Grouping<TKey, TElement> implements Iterable<TElement> {
2
+ readonly key: TKey;
3
+ readonly values: TElement[];
4
+ constructor(key: TKey, values: TElement[]);
5
+ [Symbol.iterator](): Iterator<TElement>;
6
+ }
7
+ export declare function groupBy<T, TKey, TElement = T>(source: Iterable<T>, keySelector: (item: T) => TKey, elementSelector?: (item: T) => TElement): Iterable<Grouping<TKey, TElement>>;
8
+ //# sourceMappingURL=groupBy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupBy.d.ts","sourceRoot":"","sources":["../../src/operators/groupBy.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAE,YAAW,QAAQ,CAAC,QAAQ,CAAC;aAE3C,GAAG,EAAE,IAAI;aACT,MAAM,EAAE,QAAQ,EAAE;gBADlB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,QAAQ,EAAE;IAG/B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;CAGjD;AAED,wBAAiB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,CAAC,EAC1C,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EACnB,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAC9B,eAAe,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAqD,GACpF,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAgBpC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Grouping = void 0;
4
+ exports.groupBy = groupBy;
5
+ class Grouping {
6
+ constructor(key, values) {
7
+ this.key = key;
8
+ this.values = values;
9
+ }
10
+ [Symbol.iterator]() {
11
+ return this.values[Symbol.iterator]();
12
+ }
13
+ }
14
+ exports.Grouping = Grouping;
15
+ function* groupBy(source, keySelector, elementSelector = ((item) => item)) {
16
+ const groups = new Map();
17
+ for (const item of source) {
18
+ const key = keySelector(item);
19
+ const group = groups.get(key);
20
+ if (group) {
21
+ group.push(elementSelector(item));
22
+ }
23
+ else {
24
+ groups.set(key, [elementSelector(item)]);
25
+ }
26
+ }
27
+ for (const [key, values] of groups) {
28
+ yield new Grouping(key, values);
29
+ }
30
+ }
31
+ //# sourceMappingURL=groupBy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../src/operators/groupBy.ts"],"names":[],"mappings":";;;AAWA,0BAoBC;AA/BD,MAAa,QAAQ;IACjB,YACoB,GAAS,EACT,MAAkB;QADlB,QAAG,GAAH,GAAG,CAAM;QACT,WAAM,GAAN,MAAM,CAAY;IACnC,CAAC;IAEG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1C,CAAC;CACJ;AATD,4BASC;AAED,QAAe,CAAC,CAAC,OAAO,CACpB,MAAmB,EACnB,WAA8B,EAC9B,kBAAyC,CAAC,CAAC,IAAO,EAAE,EAAE,CAAC,IAA2B,CAAC;IAEnF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function join<TOuter, TInner, TKey, TResult>(outer: Iterable<TOuter>, inner: Iterable<TInner>, outerKeySelector: (item: TOuter) => TKey, innerKeySelector: (item: TInner) => TKey, resultSelector: (outer: TOuter, inner: TInner) => TResult): Iterable<TResult>;
2
+ //# sourceMappingURL=join.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../src/operators/join.ts"],"names":[],"mappings":"AAAA,wBAAiB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAC/C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACxC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACxC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAC1D,QAAQ,CAAC,OAAO,CAAC,CAoBnB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.join = join;
4
+ function* join(outer, inner, outerKeySelector, innerKeySelector, resultSelector) {
5
+ const lookup = new Map();
6
+ for (const innerItem of inner) {
7
+ const key = innerKeySelector(innerItem);
8
+ const group = lookup.get(key);
9
+ if (group) {
10
+ group.push(innerItem);
11
+ }
12
+ else {
13
+ lookup.set(key, [innerItem]);
14
+ }
15
+ }
16
+ for (const outerItem of outer) {
17
+ const matches = lookup.get(outerKeySelector(outerItem));
18
+ if (!matches)
19
+ continue;
20
+ for (const innerItem of matches) {
21
+ yield resultSelector(outerItem, innerItem);
22
+ }
23
+ }
24
+ }
25
+ //# sourceMappingURL=join.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/operators/join.ts"],"names":[],"mappings":";;AAAA,oBA0BC;AA1BD,QAAe,CAAC,CAAC,IAAI,CACjB,KAAuB,EACvB,KAAuB,EACvB,gBAAwC,EACxC,gBAAwC,EACxC,cAAyD;IAEzD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface SortCriterion<T, TKey = any> {
2
+ keySelector: (item: T) => TKey;
3
+ comparer: (a: TKey, b: TKey) => number;
4
+ }
5
+ export declare function orderByMany<T>(source: Iterable<T>, criteria: ReadonlyArray<SortCriterion<T>>): Iterable<T>;
6
+ //# sourceMappingURL=orderByMany.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderByMany.d.ts","sourceRoot":"","sources":["../../src/operators/orderByMany.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG;IACxC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;CAC1C;AAED,wBAAiB,WAAW,CAAC,CAAC,EAC1B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EACnB,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAC1C,QAAQ,CAAC,CAAC,CAAC,CAab"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.orderByMany = orderByMany;
4
+ function* orderByMany(source, criteria) {
5
+ const buffer = Array.from(source);
6
+ buffer.sort((a, b) => {
7
+ for (const criterion of criteria) {
8
+ const comparison = criterion.comparer(criterion.keySelector(a), criterion.keySelector(b));
9
+ if (comparison !== 0)
10
+ return comparison;
11
+ }
12
+ return 0;
13
+ });
14
+ for (const item of buffer) {
15
+ yield item;
16
+ }
17
+ }
18
+ //# sourceMappingURL=orderByMany.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderByMany.js","sourceRoot":"","sources":["../../src/operators/orderByMany.ts"],"names":[],"mappings":";;AAKA,kCAgBC;AAhBD,QAAe,CAAC,CAAC,WAAW,CACxB,MAAmB,EACnB,QAAyC;IAEzC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjB,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC;IACf,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function selectMany<T, U, R = U>(source: Iterable<T>, collectionSelector: (item: T, index: number) => Iterable<U>, resultSelector?: (item: T, collectionItem: U) => R): Iterable<U | R>;
2
+ //# sourceMappingURL=selectMany.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectMany.d.ts","sourceRoot":"","sources":["../../src/operators/selectMany.ts"],"names":[],"mappings":"AAAA,wBAAiB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EACnC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EACnB,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAC3D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,KAAK,CAAC,GACnD,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAOjB"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectMany = selectMany;
4
+ function* selectMany(source, collectionSelector, resultSelector) {
5
+ let index = 0;
6
+ for (const item of source) {
7
+ for (const collectionItem of collectionSelector(item, index++)) {
8
+ yield resultSelector ? resultSelector(item, collectionItem) : collectionItem;
9
+ }
10
+ }
11
+ }
12
+ //# sourceMappingURL=selectMany.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectMany.js","sourceRoot":"","sources":["../../src/operators/selectMany.ts"],"names":[],"mappings":";;AAAA,gCAWC;AAXD,QAAe,CAAC,CAAC,UAAU,CACvB,MAAmB,EACnB,kBAA2D,EAC3D,cAAkD;IAElD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACxB,KAAK,MAAM,cAAc,IAAI,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC7D,MAAM,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QACjF,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -1,6 +1,9 @@
1
1
  export declare function isIterable<T>(obj: any): obj is Iterable<T>;
2
+ export declare function isAsyncIterable<T>(obj: any): obj is AsyncIterable<T>;
3
+ export declare function isIterableLike<T>(obj: any): obj is Iterable<T> | AsyncIterable<T>;
2
4
  export declare function isFunction(obj: any): obj is Function;
3
5
  export declare function assertIterable<T>(source: any, name?: string): asserts source is Iterable<T>;
6
+ export declare function assertIterableLike<T>(source: any, name?: string): asserts source is Iterable<T> | AsyncIterable<T>;
4
7
  export declare function assertFunction(fn: any, name: string): asserts fn is Function;
5
8
  export declare function assertInteger(num: any, name: string): asserts num is number;
6
9
  export declare function assertNonNegative(num: number, name: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/utils/guards.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,CAE1D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,CAEpD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,MAAiB,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAIrG;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,QAAQ,CAI5E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAI3E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIjE"}
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/utils/guards.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,CAE1D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAEpE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAEjF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,CAEpD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,MAAiB,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAIrG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,MAAiB,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAI5H;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,QAAQ,CAI5E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAI3E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIjE"}
@@ -1,14 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isIterable = isIterable;
4
+ exports.isAsyncIterable = isAsyncIterable;
5
+ exports.isIterableLike = isIterableLike;
4
6
  exports.isFunction = isFunction;
5
7
  exports.assertIterable = assertIterable;
8
+ exports.assertIterableLike = assertIterableLike;
6
9
  exports.assertFunction = assertFunction;
7
10
  exports.assertInteger = assertInteger;
8
11
  exports.assertNonNegative = assertNonNegative;
9
12
  function isIterable(obj) {
10
13
  return obj != null && typeof obj[Symbol.iterator] === 'function';
11
14
  }
15
+ function isAsyncIterable(obj) {
16
+ return obj != null && typeof obj[Symbol.asyncIterator] === 'function';
17
+ }
18
+ function isIterableLike(obj) {
19
+ return isIterable(obj) || isAsyncIterable(obj);
20
+ }
12
21
  function isFunction(obj) {
13
22
  return typeof obj === 'function';
14
23
  }
@@ -17,6 +26,11 @@ function assertIterable(source, name = 'source') {
17
26
  throw new TypeError(`${name} must be an iterable.`);
18
27
  }
19
28
  }
29
+ function assertIterableLike(source, name = 'source') {
30
+ if (!isIterableLike(source)) {
31
+ throw new TypeError(`${name} must be an iterable or async iterable.`);
32
+ }
33
+ }
20
34
  function assertFunction(fn, name) {
21
35
  if (!isFunction(fn)) {
22
36
  throw new TypeError(`${name} must be a function.`);
@@ -1 +1 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/utils/guards.ts"],"names":[],"mappings":";;AAAA,gCAEC;AAED,gCAEC;AAED,wCAIC;AAED,wCAIC;AAED,sCAIC;AAED,8CAIC;AA9BD,SAAgB,UAAU,CAAI,GAAQ;IAClC,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC;AACrE,CAAC;AAED,SAAgB,UAAU,CAAC,GAAQ;IAC/B,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,SAAgB,cAAc,CAAI,MAAW,EAAE,OAAe,QAAQ;IAClE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC;IACxD,CAAC;AACL,CAAC;AAED,SAAgB,cAAc,CAAC,EAAO,EAAE,IAAY;IAChD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,SAAgB,aAAa,CAAC,GAAQ,EAAE,IAAY;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAW,EAAE,IAAY;IACvD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACV,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;IACzD,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/utils/guards.ts"],"names":[],"mappings":";;AAAA,gCAEC;AAED,0CAEC;AAED,wCAEC;AAED,gCAEC;AAED,wCAIC;AAED,gDAIC;AAED,wCAIC;AAED,sCAIC;AAED,8CAIC;AA5CD,SAAgB,UAAU,CAAI,GAAQ;IAClC,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC;AACrE,CAAC;AAED,SAAgB,eAAe,CAAI,GAAQ;IACvC,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,CAAC;AAC1E,CAAC;AAED,SAAgB,cAAc,CAAI,GAAQ;IACtC,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,UAAU,CAAC,GAAQ;IAC/B,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,SAAgB,cAAc,CAAI,MAAW,EAAE,OAAe,QAAQ;IAClE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC;IACxD,CAAC;AACL,CAAC;AAED,SAAgB,kBAAkB,CAAI,MAAW,EAAE,OAAe,QAAQ;IACtE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,yCAAyC,CAAC,CAAC;IAC1E,CAAC;AACL,CAAC;AAED,SAAgB,cAAc,CAAC,EAAO,EAAE,IAAY;IAChD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,SAAgB,aAAa,CAAC,GAAQ,EAAE,IAAY;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAW,EAAE,IAAY;IACvD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACV,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;IACzD,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,27 @@
1
1
  {
2
2
  "name": "inqjs",
3
- "version": "1.0.2",
3
+ "version": "2.0.0",
4
4
  "description": "A lightweight, dependency-free LINQ engine for TypeScript and JavaScript with comprehensive query capabilities",
5
5
  "main": "dist/Query.js",
6
6
  "types": "dist/Query.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/Query.d.ts",
10
+ "require": "./dist/Query.js",
11
+ "default": "./dist/Query.js"
12
+ },
13
+ "./async": {
14
+ "types": "./dist/async/AsyncQuery.d.ts",
15
+ "require": "./dist/async/AsyncQuery.js",
16
+ "default": "./dist/async/AsyncQuery.js"
17
+ },
18
+ "./json": {
19
+ "types": "./dist/json/fromJson.d.ts",
20
+ "require": "./dist/json/fromJson.js",
21
+ "default": "./dist/json/fromJson.js"
22
+ },
23
+ "./package.json": "./package.json"
24
+ },
7
25
  "files": [
8
26
  "dist/**/*",
9
27
  "README.md",
@@ -11,7 +29,9 @@
11
29
  ],
12
30
  "scripts": {
13
31
  "build": "tsc",
14
- "test": "vitest run",
32
+ "test": "npm run build && vitest run && node tests/query.test.js",
33
+ "test:unit": "vitest run",
34
+ "test:js": "npm run build && node tests/query.test.js",
15
35
  "prepublishOnly": "npm run build && npm test"
16
36
  },
17
37
  "keywords": [
@@ -44,4 +64,4 @@
44
64
  "engines": {
45
65
  "node": ">=14.0.0"
46
66
  }
47
- }
67
+ }