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.
- package/README.md +34 -12
- package/dist/Query.d.ts +15 -1
- package/dist/Query.d.ts.map +1 -1
- package/dist/Query.js +44 -3
- package/dist/Query.js.map +1 -1
- package/dist/async/AsyncQuery.d.ts +20 -7
- package/dist/async/AsyncQuery.d.ts.map +1 -1
- package/dist/async/AsyncQuery.js +52 -9
- package/dist/async/AsyncQuery.js.map +1 -1
- package/dist/async/operators/concatAsync.d.ts +1 -1
- package/dist/async/operators/concatAsync.d.ts.map +1 -1
- package/dist/async/operators/concatAsync.js.map +1 -1
- package/dist/async/operators/exceptAsync.d.ts +1 -1
- package/dist/async/operators/exceptAsync.d.ts.map +1 -1
- package/dist/async/operators/exceptAsync.js.map +1 -1
- package/dist/async/operators/groupByAsync.d.ts +3 -0
- package/dist/async/operators/groupByAsync.d.ts.map +1 -0
- package/dist/async/operators/groupByAsync.js +22 -0
- package/dist/async/operators/groupByAsync.js.map +1 -0
- package/dist/async/operators/intersectAsync.d.ts +1 -1
- package/dist/async/operators/intersectAsync.d.ts.map +1 -1
- package/dist/async/operators/intersectAsync.js.map +1 -1
- package/dist/async/operators/joinAsync.d.ts +2 -0
- package/dist/async/operators/joinAsync.d.ts.map +1 -0
- package/dist/async/operators/joinAsync.js +25 -0
- package/dist/async/operators/joinAsync.js.map +1 -0
- package/dist/async/operators/orderByManyAsync.d.ts +6 -0
- package/dist/async/operators/orderByManyAsync.d.ts.map +1 -0
- package/dist/async/operators/orderByManyAsync.js +25 -0
- package/dist/async/operators/orderByManyAsync.js.map +1 -0
- package/dist/async/operators/selectManyAsync.d.ts +2 -0
- package/dist/async/operators/selectManyAsync.d.ts.map +1 -0
- package/dist/async/operators/selectManyAsync.js +13 -0
- package/dist/async/operators/selectManyAsync.js.map +1 -0
- package/dist/async/operators/unionAsync.d.ts +1 -1
- package/dist/async/operators/unionAsync.d.ts.map +1 -1
- package/dist/async/operators/unionAsync.js.map +1 -1
- package/dist/operators/groupBy.d.ts +8 -0
- package/dist/operators/groupBy.d.ts.map +1 -0
- package/dist/operators/groupBy.js +31 -0
- package/dist/operators/groupBy.js.map +1 -0
- package/dist/operators/join.d.ts +2 -0
- package/dist/operators/join.d.ts.map +1 -0
- package/dist/operators/join.js +25 -0
- package/dist/operators/join.js.map +1 -0
- package/dist/operators/orderByMany.d.ts +6 -0
- package/dist/operators/orderByMany.d.ts.map +1 -0
- package/dist/operators/orderByMany.js +18 -0
- package/dist/operators/orderByMany.js.map +1 -0
- package/dist/operators/selectMany.d.ts +2 -0
- package/dist/operators/selectMany.d.ts.map +1 -0
- package/dist/operators/selectMany.js +12 -0
- package/dist/operators/selectMany.js.map +1 -0
- package/dist/utils/guards.d.ts +3 -0
- package/dist/utils/guards.d.ts.map +1 -1
- package/dist/utils/guards.js +14 -0
- package/dist/utils/guards.js.map +1 -1
- 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(
|
|
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
|
-
#
|
|
200
|
+
# Build, run TypeScript tests, and run JavaScript smoke tests
|
|
179
201
|
npm test
|
|
180
202
|
|
|
181
|
-
# Run JavaScript tests
|
|
182
|
-
|
|
203
|
+
# Run just the JavaScript smoke tests
|
|
204
|
+
npm run test:js
|
|
183
205
|
```
|
|
184
206
|
|
|
185
|
-
**Test Coverage**:
|
|
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
|
-
-
|
|
206
|
-
-
|
|
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):
|
|
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
|
package/dist/Query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"
|
|
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
|
|
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":";;;
|
|
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):
|
|
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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"AsyncQuery.d.ts","sourceRoot":"","sources":["../../src/async/AsyncQuery.ts"],"names":[],"mappings":"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"}
|
package/dist/async/AsyncQuery.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
|
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":";;;
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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 @@
|
|
|
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"}
|
package/dist/utils/guards.d.ts
CHANGED
|
@@ -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"}
|
package/dist/utils/guards.js
CHANGED
|
@@ -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.`);
|
package/dist/utils/guards.js.map
CHANGED
|
@@ -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;
|
|
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": "
|
|
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
|
+
}
|