@thisisagile/easy-mongo 13.0.0 → 13.0.2
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/dist/Stages.d.ts +14 -24
- package/dist/Stages.js +3 -3
- package/dist/Stages.js.map +1 -1
- package/package.json +3 -3
- package/src/Stages.ts +12 -10
package/dist/Stages.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Filter, FindOptions } from './MongoProvider';
|
|
2
|
-
import { Get, Optional } from '@thisisagile/easy';
|
|
2
|
+
import { Get, Optional, PartialRecord } from '@thisisagile/easy';
|
|
3
3
|
export declare const asc = 1;
|
|
4
4
|
export declare const desc = -1;
|
|
5
|
+
export type Accumulators = '$sum' | '$count' | '$avg' | '$first' | '$last' | '$min' | '$max';
|
|
6
|
+
export type Accumulator = PartialRecord<Accumulators, Filter>;
|
|
5
7
|
export declare const stages: {
|
|
6
8
|
decode: {
|
|
7
9
|
fields: (f: Filter) => any;
|
|
@@ -36,38 +38,26 @@ export declare const stages: {
|
|
|
36
38
|
desc: (key: string) => Optional<Filter<unknown>>;
|
|
37
39
|
};
|
|
38
40
|
group: {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
group: (fields: Record<string, Accumulator>) => {
|
|
42
|
+
by: (by: Filter) => {
|
|
41
43
|
$group: any;
|
|
42
44
|
};
|
|
43
45
|
};
|
|
44
|
-
count: () => {
|
|
45
|
-
$count: {};
|
|
46
|
-
};
|
|
47
|
-
sum: (from?: string) => {
|
|
48
|
-
$sum: string;
|
|
49
|
-
};
|
|
50
|
-
avg: (from?: string) => {
|
|
51
|
-
$avg: string;
|
|
52
|
-
};
|
|
53
|
-
first: (from?: string) => {
|
|
54
|
-
$first: string;
|
|
55
|
-
};
|
|
56
|
-
last: (from?: string) => {
|
|
57
|
-
$last: string;
|
|
58
|
-
};
|
|
59
|
-
min: (from?: string) => {
|
|
60
|
-
$min: string;
|
|
61
|
-
};
|
|
62
|
-
max: (from?: string) => {
|
|
63
|
-
$max: string;
|
|
64
|
-
};
|
|
65
46
|
date: (format?: string) => (key: string) => {
|
|
66
47
|
$dateToString: {
|
|
67
48
|
date: string;
|
|
68
49
|
format: string;
|
|
69
50
|
};
|
|
70
51
|
};
|
|
52
|
+
count: () => Accumulator;
|
|
53
|
+
sum: (from?: string) => Accumulator;
|
|
54
|
+
avg: (from?: string) => {
|
|
55
|
+
$avg: string;
|
|
56
|
+
};
|
|
57
|
+
first: (from?: string) => Accumulator;
|
|
58
|
+
last: (from?: string) => Accumulator;
|
|
59
|
+
min: (from?: string) => Accumulator;
|
|
60
|
+
max: (from?: string) => Accumulator;
|
|
71
61
|
};
|
|
72
62
|
skip: {
|
|
73
63
|
skip: ({ skip: $skip }: FindOptions) => Optional<Filter>;
|
package/dist/Stages.js
CHANGED
|
@@ -25,9 +25,10 @@ exports.stages = {
|
|
|
25
25
|
desc: (key) => exports.stages.sort.sort({ [key]: exports.desc }),
|
|
26
26
|
},
|
|
27
27
|
group: {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
group: (fields) => ({
|
|
29
|
+
by: (by) => ({ $group: Object.assign({ _id: exports.stages.decode.id(by) }, exports.stages.decode.fields(fields)) }),
|
|
30
30
|
}),
|
|
31
|
+
date: (format = '%Y-%m-%d') => (key) => ({ $dateToString: { date: `$${key}`, format } }),
|
|
31
32
|
count: () => ({ $count: {} }),
|
|
32
33
|
sum: (from) => ({ $sum: `$${from}` }),
|
|
33
34
|
avg: (from) => ({ $avg: `$${from}` }),
|
|
@@ -35,7 +36,6 @@ exports.stages = {
|
|
|
35
36
|
last: (from) => ({ $last: `$${from}` }),
|
|
36
37
|
min: (from) => ({ $min: `$${from}` }),
|
|
37
38
|
max: (from) => ({ $max: `$${from}` }),
|
|
38
|
-
date: (format = '%Y-%m-%d') => (key) => ({ $dateToString: { date: `$${key}`, format } }),
|
|
39
39
|
},
|
|
40
40
|
skip: {
|
|
41
41
|
skip: ({ skip: $skip }) => (0, easy_1.ifDefined)($skip, { $skip }),
|
package/dist/Stages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stages.js","sourceRoot":"","sources":["../src/Stages.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"Stages.js","sourceRoot":"","sources":["../src/Stages.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thisisagile/easy-mongo",
|
|
3
|
-
"version": "13.0.
|
|
3
|
+
"version": "13.0.2",
|
|
4
4
|
"description": "Add support for MongoDB",
|
|
5
5
|
"author": "Sander Hoogendoorn",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@thisisagile/easy-test": "13.0.
|
|
34
|
+
"@thisisagile/easy-test": "13.0.2"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@thisisagile/easy": "13.0.
|
|
37
|
+
"@thisisagile/easy": "13.0.2",
|
|
38
38
|
"mongodb": "^4.14.0"
|
|
39
39
|
}
|
|
40
40
|
}
|
package/src/Stages.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Filter, FindOptions } from './MongoProvider';
|
|
2
|
-
import { Get, ifDefined, isFunction, isPresent, isString, on, Optional } from '@thisisagile/easy';
|
|
2
|
+
import { Get, ifDefined, isFunction, isPresent, isString, on, Optional, PartialRecord } from '@thisisagile/easy';
|
|
3
3
|
import { toMongoType } from './Utils';
|
|
4
4
|
|
|
5
5
|
export const asc = 1;
|
|
6
6
|
export const desc = -1;
|
|
7
|
+
export type Accumulators = '$sum' | '$count' | '$avg' | '$first' | '$last' | '$min' | '$max';
|
|
8
|
+
export type Accumulator = PartialRecord<Accumulators, Filter>;
|
|
7
9
|
|
|
8
10
|
export const stages = {
|
|
9
11
|
decode: {
|
|
@@ -25,19 +27,19 @@ export const stages = {
|
|
|
25
27
|
desc: (key: string) => stages.sort.sort({ [key]: desc }),
|
|
26
28
|
},
|
|
27
29
|
group: {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
group: (fields: Record<string, Accumulator>) => ({
|
|
31
|
+
by: (by: Filter) => ({ $group: Object.assign({ _id: stages.decode.id(by) }, stages.decode.fields(fields)) }),
|
|
30
32
|
}),
|
|
31
|
-
count: () => ({ $count: {} }),
|
|
32
|
-
sum: (from?: string) => ({ $sum: `$${from}` }),
|
|
33
|
-
avg: (from?: string) => ({ $avg: `$${from}` }),
|
|
34
|
-
first: (from?: string) => ({ $first: `$${from}` }),
|
|
35
|
-
last: (from?: string) => ({ $last: `$${from}` }),
|
|
36
|
-
min: (from?: string) => ({ $min: `$${from}` }),
|
|
37
|
-
max: (from?: string) => ({ $max: `$${from}` }),
|
|
38
33
|
date:
|
|
39
34
|
(format = '%Y-%m-%d') =>
|
|
40
35
|
(key: string) => ({ $dateToString: { date: `$${key}`, format } }),
|
|
36
|
+
count: (): Accumulator => ({ $count: {} }),
|
|
37
|
+
sum: (from?: string): Accumulator => ({ $sum: `$${from}` }),
|
|
38
|
+
avg: (from?: string) => ({ $avg: `$${from}` }),
|
|
39
|
+
first: (from?: string): Accumulator => ({ $first: `$${from}` }),
|
|
40
|
+
last: (from?: string): Accumulator => ({ $last: `$${from}` }),
|
|
41
|
+
min: (from?: string): Accumulator => ({ $min: `$${from}` }),
|
|
42
|
+
max: (from?: string): Accumulator => ({ $max: `$${from}` }),
|
|
41
43
|
},
|
|
42
44
|
skip: {
|
|
43
45
|
skip: ({ skip: $skip }: FindOptions): Optional<Filter> => ifDefined($skip, { $skip }),
|