inqjs 1.0.1 → 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 (214) hide show
  1. package/README.md +34 -12
  2. package/dist/Query.d.ts +45 -0
  3. package/dist/Query.d.ts.map +1 -0
  4. package/dist/Query.js +44 -3
  5. package/dist/Query.js.map +1 -0
  6. package/dist/async/AsyncQuery.d.ts +41 -0
  7. package/dist/async/AsyncQuery.d.ts.map +1 -0
  8. package/dist/async/AsyncQuery.js +181 -0
  9. package/dist/async/AsyncQuery.js.map +1 -0
  10. package/dist/async/operators/allAsync.d.ts +2 -0
  11. package/dist/async/operators/allAsync.d.ts.map +1 -0
  12. package/dist/async/operators/allAsync.js +12 -0
  13. package/dist/async/operators/allAsync.js.map +1 -0
  14. package/dist/async/operators/anyAsync.d.ts +2 -0
  15. package/dist/async/operators/anyAsync.d.ts.map +1 -0
  16. package/dist/async/operators/anyAsync.js +18 -0
  17. package/dist/async/operators/anyAsync.js.map +1 -0
  18. package/dist/async/operators/appendAsync.d.ts +2 -0
  19. package/dist/async/operators/appendAsync.d.ts.map +1 -0
  20. package/dist/async/operators/appendAsync.js +8 -0
  21. package/dist/async/operators/appendAsync.js.map +1 -0
  22. package/dist/async/operators/concatAsync.d.ts +2 -0
  23. package/dist/async/operators/concatAsync.d.ts.map +1 -0
  24. package/dist/async/operators/concatAsync.js +8 -0
  25. package/dist/async/operators/concatAsync.js.map +1 -0
  26. package/dist/async/operators/countAsync.d.ts +2 -0
  27. package/dist/async/operators/countAsync.d.ts.map +1 -0
  28. package/dist/async/operators/countAsync.js +13 -0
  29. package/dist/async/operators/countAsync.js.map +1 -0
  30. package/dist/async/operators/distinctAsync.d.ts +2 -0
  31. package/dist/async/operators/distinctAsync.d.ts.map +1 -0
  32. package/dist/async/operators/distinctAsync.js +14 -0
  33. package/dist/async/operators/distinctAsync.js.map +1 -0
  34. package/dist/async/operators/exceptAsync.d.ts +2 -0
  35. package/dist/async/operators/exceptAsync.d.ts.map +1 -0
  36. package/dist/async/operators/exceptAsync.js +18 -0
  37. package/dist/async/operators/exceptAsync.js.map +1 -0
  38. package/dist/async/operators/firstAsync.d.ts +2 -0
  39. package/dist/async/operators/firstAsync.d.ts.map +1 -0
  40. package/dist/async/operators/firstAsync.js +21 -0
  41. package/dist/async/operators/firstAsync.js.map +1 -0
  42. package/dist/async/operators/groupByAsync.d.ts +3 -0
  43. package/dist/async/operators/groupByAsync.d.ts.map +1 -0
  44. package/dist/async/operators/groupByAsync.js +22 -0
  45. package/dist/async/operators/groupByAsync.js.map +1 -0
  46. package/dist/async/operators/intersectAsync.d.ts +2 -0
  47. package/dist/async/operators/intersectAsync.d.ts.map +1 -0
  48. package/dist/async/operators/intersectAsync.js +18 -0
  49. package/dist/async/operators/intersectAsync.js.map +1 -0
  50. package/dist/async/operators/joinAsync.d.ts +2 -0
  51. package/dist/async/operators/joinAsync.d.ts.map +1 -0
  52. package/dist/async/operators/joinAsync.js +25 -0
  53. package/dist/async/operators/joinAsync.js.map +1 -0
  54. package/dist/async/operators/maxAsync.d.ts +2 -0
  55. package/dist/async/operators/maxAsync.d.ts.map +1 -0
  56. package/dist/async/operators/maxAsync.js +17 -0
  57. package/dist/async/operators/maxAsync.js.map +1 -0
  58. package/dist/async/operators/minAsync.d.ts +2 -0
  59. package/dist/async/operators/minAsync.d.ts.map +1 -0
  60. package/dist/async/operators/minAsync.js +17 -0
  61. package/dist/async/operators/minAsync.js.map +1 -0
  62. package/dist/async/operators/orderByAsync.d.ts +2 -0
  63. package/dist/async/operators/orderByAsync.d.ts.map +1 -0
  64. package/dist/async/operators/orderByAsync.js +19 -0
  65. package/dist/async/operators/orderByAsync.js.map +1 -0
  66. package/dist/async/operators/orderByManyAsync.d.ts +6 -0
  67. package/dist/async/operators/orderByManyAsync.d.ts.map +1 -0
  68. package/dist/async/operators/orderByManyAsync.js +25 -0
  69. package/dist/async/operators/orderByManyAsync.js.map +1 -0
  70. package/dist/async/operators/prependAsync.d.ts +2 -0
  71. package/dist/async/operators/prependAsync.d.ts.map +1 -0
  72. package/dist/async/operators/prependAsync.js +8 -0
  73. package/dist/async/operators/prependAsync.js.map +1 -0
  74. package/dist/async/operators/selectAsync.d.ts +2 -0
  75. package/dist/async/operators/selectAsync.d.ts.map +1 -0
  76. package/dist/async/operators/selectAsync.js +10 -0
  77. package/dist/async/operators/selectAsync.js.map +1 -0
  78. package/dist/async/operators/selectManyAsync.d.ts +2 -0
  79. package/dist/async/operators/selectManyAsync.d.ts.map +1 -0
  80. package/dist/async/operators/selectManyAsync.js +13 -0
  81. package/dist/async/operators/selectManyAsync.js.map +1 -0
  82. package/dist/async/operators/skipAsync.d.ts +2 -0
  83. package/dist/async/operators/skipAsync.d.ts.map +1 -0
  84. package/dist/async/operators/skipAsync.js +14 -0
  85. package/dist/async/operators/skipAsync.js.map +1 -0
  86. package/dist/async/operators/sumAsync.d.ts +2 -0
  87. package/dist/async/operators/sumAsync.d.ts.map +1 -0
  88. package/dist/async/operators/sumAsync.js +15 -0
  89. package/dist/async/operators/sumAsync.js.map +1 -0
  90. package/dist/async/operators/takeAsync.d.ts +2 -0
  91. package/dist/async/operators/takeAsync.d.ts.map +1 -0
  92. package/dist/async/operators/takeAsync.js +13 -0
  93. package/dist/async/operators/takeAsync.js.map +1 -0
  94. package/dist/async/operators/toArrayAsync.d.ts +2 -0
  95. package/dist/async/operators/toArrayAsync.d.ts.map +1 -0
  96. package/dist/async/operators/toArrayAsync.js +11 -0
  97. package/dist/async/operators/toArrayAsync.js.map +1 -0
  98. package/dist/async/operators/unionAsync.d.ts +2 -0
  99. package/dist/async/operators/unionAsync.d.ts.map +1 -0
  100. package/dist/async/operators/unionAsync.js +21 -0
  101. package/dist/async/operators/unionAsync.js.map +1 -0
  102. package/dist/async/operators/whereAsync.d.ts +2 -0
  103. package/dist/async/operators/whereAsync.d.ts.map +1 -0
  104. package/dist/async/operators/whereAsync.js +12 -0
  105. package/dist/async/operators/whereAsync.js.map +1 -0
  106. package/dist/json/fromJson.d.ts +20 -0
  107. package/dist/json/fromJson.d.ts.map +1 -0
  108. package/dist/json/fromJson.js +49 -0
  109. package/dist/json/fromJson.js.map +1 -0
  110. package/dist/operators/all.d.ts +2 -0
  111. package/dist/operators/all.d.ts.map +1 -0
  112. package/dist/operators/all.js +12 -0
  113. package/dist/operators/all.js.map +1 -0
  114. package/dist/operators/any.d.ts +2 -0
  115. package/dist/operators/any.d.ts.map +1 -0
  116. package/dist/operators/any.js +17 -0
  117. package/dist/operators/any.js.map +1 -0
  118. package/dist/operators/append.d.ts +2 -0
  119. package/dist/operators/append.d.ts.map +1 -0
  120. package/dist/operators/append.js +8 -0
  121. package/dist/operators/append.js.map +1 -0
  122. package/dist/operators/concat.d.ts +2 -0
  123. package/dist/operators/concat.d.ts.map +1 -0
  124. package/dist/operators/concat.js +8 -0
  125. package/dist/operators/concat.js.map +1 -0
  126. package/dist/operators/count.d.ts +2 -0
  127. package/dist/operators/count.d.ts.map +1 -0
  128. package/dist/operators/count.js +13 -0
  129. package/dist/operators/count.js.map +1 -0
  130. package/dist/operators/distinct.d.ts +2 -0
  131. package/dist/operators/distinct.d.ts.map +1 -0
  132. package/dist/operators/distinct.js +14 -0
  133. package/dist/operators/distinct.js.map +1 -0
  134. package/dist/operators/except.d.ts +2 -0
  135. package/dist/operators/except.d.ts.map +1 -0
  136. package/dist/operators/except.js +18 -0
  137. package/dist/operators/except.js.map +1 -0
  138. package/dist/operators/first.d.ts +2 -0
  139. package/dist/operators/first.d.ts.map +1 -0
  140. package/dist/operators/first.js +21 -0
  141. package/dist/operators/first.js.map +1 -0
  142. package/dist/operators/groupBy.d.ts +8 -0
  143. package/dist/operators/groupBy.d.ts.map +1 -0
  144. package/dist/operators/groupBy.js +31 -0
  145. package/dist/operators/groupBy.js.map +1 -0
  146. package/dist/operators/intersect.d.ts +2 -0
  147. package/dist/operators/intersect.d.ts.map +1 -0
  148. package/dist/operators/intersect.js +18 -0
  149. package/dist/operators/intersect.js.map +1 -0
  150. package/dist/operators/join.d.ts +2 -0
  151. package/dist/operators/join.d.ts.map +1 -0
  152. package/dist/operators/join.js +25 -0
  153. package/dist/operators/join.js.map +1 -0
  154. package/dist/operators/max.d.ts +2 -0
  155. package/dist/operators/max.d.ts.map +1 -0
  156. package/dist/operators/max.js +17 -0
  157. package/dist/operators/max.js.map +1 -0
  158. package/dist/operators/min.d.ts +2 -0
  159. package/dist/operators/min.d.ts.map +1 -0
  160. package/dist/operators/min.js +17 -0
  161. package/dist/operators/min.js.map +1 -0
  162. package/dist/operators/orderBy.d.ts +2 -0
  163. package/dist/operators/orderBy.d.ts.map +1 -0
  164. package/dist/operators/orderBy.js +15 -0
  165. package/dist/operators/orderBy.js.map +1 -0
  166. package/dist/operators/orderByMany.d.ts +6 -0
  167. package/dist/operators/orderByMany.d.ts.map +1 -0
  168. package/dist/operators/orderByMany.js +18 -0
  169. package/dist/operators/orderByMany.js.map +1 -0
  170. package/dist/operators/prepend.d.ts +2 -0
  171. package/dist/operators/prepend.d.ts.map +1 -0
  172. package/dist/operators/prepend.js +8 -0
  173. package/dist/operators/prepend.js.map +1 -0
  174. package/dist/operators/select.d.ts +2 -0
  175. package/dist/operators/select.d.ts.map +1 -0
  176. package/dist/operators/select.js +10 -0
  177. package/dist/operators/select.js.map +1 -0
  178. package/dist/operators/selectMany.d.ts +2 -0
  179. package/dist/operators/selectMany.d.ts.map +1 -0
  180. package/dist/operators/selectMany.js +12 -0
  181. package/dist/operators/selectMany.js.map +1 -0
  182. package/dist/operators/skip.d.ts +2 -0
  183. package/dist/operators/skip.d.ts.map +1 -0
  184. package/dist/operators/skip.js +14 -0
  185. package/dist/operators/skip.js.map +1 -0
  186. package/dist/operators/sum.d.ts +2 -0
  187. package/dist/operators/sum.d.ts.map +1 -0
  188. package/dist/operators/sum.js +15 -0
  189. package/dist/operators/sum.js.map +1 -0
  190. package/dist/operators/take.d.ts +2 -0
  191. package/dist/operators/take.d.ts.map +1 -0
  192. package/dist/operators/take.js +13 -0
  193. package/dist/operators/take.js.map +1 -0
  194. package/dist/operators/toArray.d.ts +2 -0
  195. package/dist/operators/toArray.d.ts.map +1 -0
  196. package/dist/operators/toArray.js +7 -0
  197. package/dist/operators/toArray.js.map +1 -0
  198. package/dist/operators/union.d.ts +2 -0
  199. package/dist/operators/union.d.ts.map +1 -0
  200. package/dist/operators/union.js +21 -0
  201. package/dist/operators/union.js.map +1 -0
  202. package/dist/operators/where.d.ts +2 -0
  203. package/dist/operators/where.d.ts.map +1 -0
  204. package/dist/operators/where.js +12 -0
  205. package/dist/operators/where.js.map +1 -0
  206. package/dist/utils/comparers.d.ts +3 -0
  207. package/dist/utils/comparers.d.ts.map +1 -0
  208. package/dist/utils/comparers.js +21 -0
  209. package/dist/utils/comparers.js.map +1 -0
  210. package/dist/utils/guards.d.ts +10 -0
  211. package/dist/utils/guards.d.ts.map +1 -0
  212. package/dist/utils/guards.js +49 -0
  213. package/dist/utils/guards.js.map +1 -0
  214. package/package.json +24 -4
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
 
@@ -0,0 +1,45 @@
1
+ import { Grouping } from './operators/groupBy';
2
+ import { SortCriterion } from './operators/orderByMany';
3
+ import { AsyncQuery } from './async/AsyncQuery';
4
+ export declare class Query<T> implements Iterable<T> {
5
+ private readonly _source;
6
+ constructor(source: Iterable<T>);
7
+ [Symbol.iterator](): Iterator<T>;
8
+ static from<T>(source: Iterable<T>): Query<T>;
9
+ where(predicate: (item: T, index?: number) => boolean): Query<T>;
10
+ select<U>(selector: (item: T, index?: number) => U): Query<U>;
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>;
16
+ skip(count: number): Query<T>;
17
+ distinct<TKey = T>(keySelector?: (item: T) => TKey): Query<T>;
18
+ any(predicate?: (item: T) => boolean): boolean;
19
+ all(predicate: (item: T) => boolean): boolean;
20
+ sum(selector?: (item: T) => number): number;
21
+ min(selector?: (item: T) => number): number | undefined;
22
+ max(selector?: (item: T) => number): number | undefined;
23
+ first(predicate?: (item: T) => boolean): T;
24
+ toArray(): T[];
25
+ take(count: number): Query<T>;
26
+ count(predicate?: (item: T) => boolean): number;
27
+ append(element: T): Query<T>;
28
+ prepend(element: T): Query<T>;
29
+ concat(other: Iterable<T>): Query<T>;
30
+ union<TKey = T>(other: Iterable<T>, keySelector?: (item: T) => TKey): Query<T>;
31
+ intersect<TKey = T>(other: Iterable<T>, keySelector?: (item: T) => TKey): Query<T>;
32
+ except<TKey = T>(other: Iterable<T>, keySelector?: (item: T) => TKey): Query<T>;
33
+ toAsync(): AsyncQuery<T>;
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
+ }
41
+ export declare function from<T>(source: Iterable<T>): Query<T>;
42
+ export { fromJson, fromJsonArray, fromJsonObject } from './json/fromJson';
43
+ export { fromAsync } from './async/AsyncQuery';
44
+ export { Grouping } from './operators/groupBy';
45
+ //# sourceMappingURL=Query.d.ts.map
@@ -0,0 +1 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { AsyncSortCriterion } from './operators/orderByManyAsync';
2
+ import { Grouping } from '../operators/groupBy';
3
+ export declare class AsyncQuery<T> implements AsyncIterable<T> {
4
+ private readonly _source;
5
+ constructor(source: Iterable<T> | AsyncIterable<T>);
6
+ [Symbol.asyncIterator](): AsyncIterator<T>;
7
+ static from<T>(source: Iterable<T> | AsyncIterable<T>): AsyncQuery<T>;
8
+ private static wrap;
9
+ where(predicate: (item: T, index?: number) => boolean | Promise<boolean>): AsyncQuery<T>;
10
+ select<U>(selector: (item: T, index?: number) => U | Promise<U>): AsyncQuery<U>;
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>;
16
+ skip(count: number): AsyncQuery<T>;
17
+ distinct<TKey = T>(keySelector?: (item: T) => TKey | Promise<TKey>): AsyncQuery<T>;
18
+ any(predicate?: (item: T) => boolean | Promise<boolean>): Promise<boolean>;
19
+ all(predicate: (item: T) => boolean | Promise<boolean>): Promise<boolean>;
20
+ sum(selector?: (item: T) => number | Promise<number>): Promise<number>;
21
+ min(selector?: (item: T) => number | Promise<number>): Promise<number | undefined>;
22
+ max(selector?: (item: T) => number | Promise<number>): Promise<number | undefined>;
23
+ first(predicate?: (item: T) => boolean | Promise<boolean>): Promise<T>;
24
+ toArray(): Promise<T[]>;
25
+ take(count: number): AsyncQuery<T>;
26
+ count(predicate?: (item: T) => boolean | Promise<boolean>): Promise<number>;
27
+ append(element: T): AsyncQuery<T>;
28
+ prepend(element: T): 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>;
33
+ }
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>;
41
+ //# sourceMappingURL=AsyncQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsyncQuery.d.ts","sourceRoot":"","sources":["../../src/async/AsyncQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderedAsyncQuery = exports.AsyncQuery = void 0;
4
+ exports.fromAsync = fromAsync;
5
+ const guards_1 = require("../utils/guards");
6
+ const comparers_1 = require("../utils/comparers");
7
+ const whereAsync_1 = require("./operators/whereAsync");
8
+ const selectAsync_1 = require("./operators/selectAsync");
9
+ const skipAsync_1 = require("./operators/skipAsync");
10
+ const distinctAsync_1 = require("./operators/distinctAsync");
11
+ const anyAsync_1 = require("./operators/anyAsync");
12
+ const allAsync_1 = require("./operators/allAsync");
13
+ const sumAsync_1 = require("./operators/sumAsync");
14
+ const minAsync_1 = require("./operators/minAsync");
15
+ const maxAsync_1 = require("./operators/maxAsync");
16
+ const firstAsync_1 = require("./operators/firstAsync");
17
+ const toArrayAsync_1 = require("./operators/toArrayAsync");
18
+ const takeAsync_1 = require("./operators/takeAsync");
19
+ const countAsync_1 = require("./operators/countAsync");
20
+ const appendAsync_1 = require("./operators/appendAsync");
21
+ const prependAsync_1 = require("./operators/prependAsync");
22
+ const concatAsync_1 = require("./operators/concatAsync");
23
+ const unionAsync_1 = require("./operators/unionAsync");
24
+ const intersectAsync_1 = require("./operators/intersectAsync");
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");
30
+ class AsyncQuery {
31
+ constructor(source) {
32
+ (0, guards_1.assertIterableLike)(source, 'source');
33
+ this._source = AsyncQuery.wrap(source);
34
+ }
35
+ [Symbol.asyncIterator]() {
36
+ return this._source[Symbol.asyncIterator]();
37
+ }
38
+ static from(source) {
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;
45
+ }
46
+ }
47
+ where(predicate) {
48
+ (0, guards_1.assertFunction)(predicate, 'predicate');
49
+ return new AsyncQuery((0, whereAsync_1.whereAsync)(this._source, predicate));
50
+ }
51
+ select(selector) {
52
+ (0, guards_1.assertFunction)(selector, 'selector');
53
+ return new AsyncQuery((0, selectAsync_1.selectAsync)(this._source, selector));
54
+ }
55
+ orderBy(keySelector = comparers_1.identity, comparer = comparers_1.defaultComparer) {
56
+ if (keySelector !== undefined)
57
+ (0, guards_1.assertFunction)(keySelector, 'keySelector');
58
+ if (comparer !== undefined)
59
+ (0, guards_1.assertFunction)(comparer, '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));
80
+ }
81
+ skip(count) {
82
+ (0, guards_1.assertInteger)(count, 'count');
83
+ (0, guards_1.assertNonNegative)(count, 'count');
84
+ return new AsyncQuery((0, skipAsync_1.skipAsync)(this._source, count));
85
+ }
86
+ distinct(keySelector = comparers_1.identity) {
87
+ if (keySelector !== undefined)
88
+ (0, guards_1.assertFunction)(keySelector, 'keySelector');
89
+ return new AsyncQuery((0, distinctAsync_1.distinctAsync)(this._source, keySelector));
90
+ }
91
+ any(predicate) {
92
+ if (predicate !== undefined)
93
+ (0, guards_1.assertFunction)(predicate, 'predicate');
94
+ return (0, anyAsync_1.anyAsync)(this._source, predicate);
95
+ }
96
+ all(predicate) {
97
+ (0, guards_1.assertFunction)(predicate, 'predicate');
98
+ return (0, allAsync_1.allAsync)(this._source, predicate);
99
+ }
100
+ sum(selector = comparers_1.identity) {
101
+ if (selector !== undefined)
102
+ (0, guards_1.assertFunction)(selector, 'selector');
103
+ return (0, sumAsync_1.sumAsync)(this._source, selector);
104
+ }
105
+ min(selector = comparers_1.identity) {
106
+ if (selector !== undefined)
107
+ (0, guards_1.assertFunction)(selector, 'selector');
108
+ return (0, minAsync_1.minAsync)(this._source, selector);
109
+ }
110
+ max(selector = comparers_1.identity) {
111
+ if (selector !== undefined)
112
+ (0, guards_1.assertFunction)(selector, 'selector');
113
+ return (0, maxAsync_1.maxAsync)(this._source, selector);
114
+ }
115
+ first(predicate) {
116
+ if (predicate !== undefined)
117
+ (0, guards_1.assertFunction)(predicate, 'predicate');
118
+ return (0, firstAsync_1.firstAsync)(this._source, predicate);
119
+ }
120
+ toArray() {
121
+ return (0, toArrayAsync_1.toArrayAsync)(this._source);
122
+ }
123
+ take(count) {
124
+ (0, guards_1.assertInteger)(count, 'count');
125
+ (0, guards_1.assertNonNegative)(count, 'count');
126
+ return new AsyncQuery((0, takeAsync_1.takeAsync)(this._source, count));
127
+ }
128
+ count(predicate) {
129
+ if (predicate !== undefined)
130
+ (0, guards_1.assertFunction)(predicate, 'predicate');
131
+ return (0, countAsync_1.countAsync)(this._source, predicate);
132
+ }
133
+ append(element) {
134
+ return new AsyncQuery((0, appendAsync_1.appendAsync)(this._source, element));
135
+ }
136
+ prepend(element) {
137
+ return new AsyncQuery((0, prependAsync_1.prependAsync)(this._source, element));
138
+ }
139
+ concat(other) {
140
+ (0, guards_1.assertIterableLike)(other, 'other');
141
+ return new AsyncQuery((0, concatAsync_1.concatAsync)(this._source, other));
142
+ }
143
+ union(other, keySelector = comparers_1.identity) {
144
+ (0, guards_1.assertIterableLike)(other, 'other');
145
+ if (keySelector !== undefined)
146
+ (0, guards_1.assertFunction)(keySelector, 'keySelector');
147
+ return new AsyncQuery((0, unionAsync_1.unionAsync)(this._source, other, keySelector));
148
+ }
149
+ intersect(other, keySelector = comparers_1.identity) {
150
+ (0, guards_1.assertIterableLike)(other, 'other');
151
+ if (keySelector !== undefined)
152
+ (0, guards_1.assertFunction)(keySelector, 'keySelector');
153
+ return new AsyncQuery((0, intersectAsync_1.intersectAsync)(this._source, other, keySelector));
154
+ }
155
+ except(other, keySelector = comparers_1.identity) {
156
+ (0, guards_1.assertIterableLike)(other, 'other');
157
+ if (keySelector !== undefined)
158
+ (0, guards_1.assertFunction)(keySelector, 'keySelector');
159
+ return new AsyncQuery((0, exceptAsync_1.exceptAsync)(this._source, other, keySelector));
160
+ }
161
+ }
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;
178
+ function fromAsync(source) {
179
+ return AsyncQuery.from(source);
180
+ }
181
+ //# sourceMappingURL=AsyncQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsyncQuery.js","sourceRoot":"","sources":["../../src/async/AsyncQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function allAsync<T>(source: AsyncIterable<T>, predicate: (item: T) => boolean | Promise<boolean>): Promise<boolean>;
2
+ //# sourceMappingURL=allAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/allAsync.ts"],"names":[],"mappings":"AAAA,wBAAsB,QAAQ,CAAC,CAAC,EAC5B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GACnD,OAAO,CAAC,OAAO,CAAC,CAOlB"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allAsync = allAsync;
4
+ async function allAsync(source, predicate) {
5
+ for await (const item of source) {
6
+ if (!(await predicate(item))) {
7
+ return false;
8
+ }
9
+ }
10
+ return true;
11
+ }
12
+ //# sourceMappingURL=allAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allAsync.js","sourceRoot":"","sources":["../../../src/async/operators/allAsync.ts"],"names":[],"mappings":";;AAAA,4BAUC;AAVM,KAAK,UAAU,QAAQ,CAC1B,MAAwB,EACxB,SAAkD;IAElD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function anyAsync<T>(source: AsyncIterable<T>, predicate?: (item: T) => boolean | Promise<boolean>): Promise<boolean>;
2
+ //# sourceMappingURL=anyAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anyAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/anyAsync.ts"],"names":[],"mappings":"AAAA,wBAAsB,QAAQ,CAAC,CAAC,EAC5B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GACpD,OAAO,CAAC,OAAO,CAAC,CAclB"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.anyAsync = anyAsync;
4
+ async function anyAsync(source, predicate) {
5
+ if (predicate) {
6
+ for await (const item of source) {
7
+ if (await predicate(item)) {
8
+ return true;
9
+ }
10
+ }
11
+ return false;
12
+ }
13
+ // If no predicate, check if source has any elements
14
+ const iterator = source[Symbol.asyncIterator]();
15
+ const result = await iterator.next();
16
+ return !result.done;
17
+ }
18
+ //# sourceMappingURL=anyAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anyAsync.js","sourceRoot":"","sources":["../../../src/async/operators/anyAsync.ts"],"names":[],"mappings":";;AAAA,4BAiBC;AAjBM,KAAK,UAAU,QAAQ,CAC1B,MAAwB,EACxB,SAAmD;IAEnD,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,oDAAoD;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function appendAsync<T>(source: AsyncIterable<T>, element: T): AsyncIterable<T>;
2
+ //# sourceMappingURL=appendAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/appendAsync.ts"],"names":[],"mappings":"AAAA,wBAAuB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAG5F"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appendAsync = appendAsync;
4
+ async function* appendAsync(source, element) {
5
+ yield* source;
6
+ yield element;
7
+ }
8
+ //# sourceMappingURL=appendAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendAsync.js","sourceRoot":"","sources":["../../../src/async/operators/appendAsync.ts"],"names":[],"mappings":";;AAAA,kCAGC;AAHM,KAAK,SAAS,CAAC,CAAC,WAAW,CAAI,MAAwB,EAAE,OAAU;IACtE,KAAK,CAAC,CAAC,MAAM,CAAC;IACd,MAAM,OAAO,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function concatAsync<T>(source: AsyncIterable<T>, other: Iterable<T> | AsyncIterable<T>): AsyncIterable<T>;
2
+ //# sourceMappingURL=concatAsync.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.concatAsync = concatAsync;
4
+ async function* concatAsync(source, other) {
5
+ yield* source;
6
+ yield* other;
7
+ }
8
+ //# sourceMappingURL=concatAsync.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export declare function countAsync<T>(source: AsyncIterable<T>, predicate?: (item: T) => boolean | Promise<boolean>): Promise<number>;
2
+ //# sourceMappingURL=countAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countAsync.d.ts","sourceRoot":"","sources":["../../../src/async/operators/countAsync.ts"],"names":[],"mappings":"AAAA,wBAAsB,UAAU,CAAC,CAAC,EAC9B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GACpD,OAAO,CAAC,MAAM,CAAC,CAQjB"}