@thisisagile/easy-mongo 12.22.26 → 12.22.32

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.
@@ -1,4 +1,4 @@
1
- import { Id, Optional } from '@thisisagile/easy';
1
+ import { Optional } from '@thisisagile/easy';
2
2
  import { Filter, FindOptions } from './MongoProvider';
3
3
  export declare const asc = 1;
4
4
  export declare const desc = -1;
@@ -6,34 +6,54 @@ export declare const aggregation: {
6
6
  match: (f: Filter) => {
7
7
  $match: Filter<unknown>;
8
8
  };
9
- id: (id: Id) => {
9
+ id: (id: Filter) => {
10
10
  $match: Filter<unknown>;
11
11
  };
12
- eq: (key: string, value: Id) => {
12
+ eq: (key: string, value: Filter) => {
13
13
  $match: Filter<unknown>;
14
14
  };
15
+ gt: (key: string, value: Filter) => {
16
+ [x: string]: {
17
+ $gt: Filter<unknown>;
18
+ };
19
+ };
20
+ gte: (key: string, value: Filter) => {
21
+ [x: string]: {
22
+ $gte: Filter<unknown>;
23
+ };
24
+ };
25
+ lt: (key: string, value: Filter) => {
26
+ [x: string]: {
27
+ $lt: Filter<unknown>;
28
+ };
29
+ };
30
+ lte: (key: string, value: Filter) => {
31
+ [x: string]: {
32
+ $lte: Filter<unknown>;
33
+ };
34
+ };
15
35
  sum: (to: string, from?: string) => {
16
36
  [x: string]: {
17
37
  $sum: string;
18
38
  };
19
39
  };
20
- group: (id: Id, g: Filter) => {
21
- $group: {
22
- _id: Id | import("mongodb").Condition<import("bson").ObjectID>;
23
- $and?: import("mongodb").Filter<import("mongodb").WithId<unknown>>[] | undefined;
24
- $nor?: import("mongodb").Filter<import("mongodb").WithId<unknown>>[] | undefined;
25
- $or?: import("mongodb").Filter<import("mongodb").WithId<unknown>>[] | undefined;
26
- $text?: {
27
- $search: string;
28
- $language?: string | undefined;
29
- $caseSensitive?: boolean | undefined;
30
- $diacriticSensitive?: boolean | undefined;
31
- } | undefined;
32
- $where?: string | ((this: import("mongodb").WithId<unknown>) => boolean) | undefined;
33
- $comment?: string | import("bson").Document | undefined;
40
+ count: (to?: string) => {
41
+ [x: string]: {
42
+ $count: {};
34
43
  };
35
44
  };
45
+ group: (by: Filter, ...fs: Filter[]) => {
46
+ $group: any;
47
+ };
36
48
  skip: ({ skip: $skip }: FindOptions) => Optional<Filter>;
37
49
  take: ({ take: $limit }: FindOptions) => Optional<Filter>;
38
50
  sort: ($sort: Record<string, typeof asc | typeof desc>) => Optional<Filter>;
51
+ asc: (key: string) => Optional<Filter<unknown>>;
52
+ desc: (key: string) => Optional<Filter<unknown>>;
53
+ date: (key: string, format?: string) => {
54
+ $dateToString: {
55
+ date: string;
56
+ format: string;
57
+ };
58
+ };
39
59
  };
@@ -8,10 +8,18 @@ exports.aggregation = {
8
8
  match: (f) => ({ $match: f }),
9
9
  id: (id) => exports.aggregation.match({ id }),
10
10
  eq: (key, value) => exports.aggregation.match({ [key]: value }),
11
+ gt: (key, value) => ({ [key]: { $gt: value } }),
12
+ gte: (key, value) => ({ [key]: { $gte: value } }),
13
+ lt: (key, value) => ({ [key]: { $lt: value } }),
14
+ lte: (key, value) => ({ [key]: { $lte: value } }),
11
15
  sum: (to, from = to) => ({ [to]: { $sum: `$${from}` } }),
12
- group: (id, g) => ({ $group: { _id: id, ...g } }),
16
+ count: (to = 'count') => ({ [to]: { $count: {} } }),
17
+ group: (by, ...fs) => ({ $group: Object.assign({ _id: by }, ...fs) }),
13
18
  skip: ({ skip: $skip }) => (0, easy_1.ifDefined)($skip, { $skip }),
14
19
  take: ({ take: $limit }) => (0, easy_1.ifDefined)($limit, { $limit }),
15
20
  sort: ($sort) => ((0, easy_1.isPresent)($sort) ? { $sort } : undefined),
21
+ asc: (key) => exports.aggregation.sort({ [key]: exports.asc }),
22
+ desc: (key) => exports.aggregation.sort({ [key]: exports.desc }),
23
+ date: (key, format = '%Y-%m-%d') => ({ $dateToString: { date: `$${key}`, format } }),
16
24
  };
17
25
  //# sourceMappingURL=Aggregation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Aggregation.js","sourceRoot":"","sources":["../src/Aggregation.ts"],"names":[],"mappings":";;;AAAA,4CAAuE;AAG1D,QAAA,GAAG,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,GAAG,CAAC,CAAC,CAAC;AAEV,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACrC,EAAE,EAAE,CAAC,EAAM,EAAE,EAAE,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;IACzC,EAAE,EAAE,CAAC,GAAW,EAAE,KAAS,EAAE,EAAE,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IACnE,GAAG,EAAE,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;IACxE,KAAK,EAAE,CAAC,EAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAC7D,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAe,EAAoB,EAAE,CAAC,IAAA,gBAAS,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC;IACrF,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAe,EAAoB,EAAE,CAAC,IAAA,gBAAS,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;IACxF,IAAI,EAAE,CAAC,KAA+C,EAAoB,EAAE,CAAC,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;CACxH,CAAC"}
1
+ {"version":3,"file":"Aggregation.js","sourceRoot":"","sources":["../src/Aggregation.ts"],"names":[],"mappings":";;;AAAA,4CAAmE;AAGtD,QAAA,GAAG,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,GAAG,CAAC,CAAC,CAAC;AAEV,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACrC,EAAE,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;IAC7C,EAAE,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IACvE,EAAE,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;IAC/D,GAAG,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;IACjE,EAAE,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;IAC/D,GAAG,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;IACjE,GAAG,EAAE,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;IACxE,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;IACnD,KAAK,EAAE,CAAC,EAAU,EAAE,GAAG,EAAY,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACvF,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAe,EAAoB,EAAE,CAAC,IAAA,gBAAS,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC;IACrF,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAe,EAAoB,EAAE,CAAC,IAAA,gBAAS,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;IACxF,IAAI,EAAE,CAAC,KAA+C,EAAoB,EAAE,CAAC,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACvH,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,mBAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,WAAG,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,mBAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,YAAI,EAAE,CAAC;IACxD,IAAI,EAAE,CAAC,GAAW,EAAE,MAAM,GAAG,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;CAC7F,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy-mongo",
3
- "version": "12.22.26",
3
+ "version": "12.22.32",
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": "12.22.26"
34
+ "@thisisagile/easy-test": "12.22.32"
35
35
  },
36
36
  "dependencies": {
37
- "@thisisagile/easy": "^12.22.26",
37
+ "@thisisagile/easy": "^12.22.32",
38
38
  "mongodb": "^4.14.0"
39
39
  }
40
40
  }
@@ -1,4 +1,4 @@
1
- import { Id, ifDefined, isPresent, Optional } from '@thisisagile/easy';
1
+ import { ifDefined, isPresent, Optional } from '@thisisagile/easy';
2
2
  import { Filter, FindOptions } from './MongoProvider';
3
3
 
4
4
  export const asc = 1;
@@ -6,11 +6,19 @@ export const desc = -1;
6
6
 
7
7
  export const aggregation = {
8
8
  match: (f: Filter) => ({ $match: f }),
9
- id: (id: Id) => aggregation.match({ id }),
10
- eq: (key: string, value: Id) => aggregation.match({ [key]: value }),
9
+ id: (id: Filter) => aggregation.match({ id }),
10
+ eq: (key: string, value: Filter) => aggregation.match({ [key]: value }),
11
+ gt: (key: string, value: Filter) => ({ [key]: { $gt: value } }),
12
+ gte: (key: string, value: Filter) => ({ [key]: { $gte: value } }),
13
+ lt: (key: string, value: Filter) => ({ [key]: { $lt: value } }),
14
+ lte: (key: string, value: Filter) => ({ [key]: { $lte: value } }),
11
15
  sum: (to: string, from: string = to) => ({ [to]: { $sum: `$${from}` } }),
12
- group: (id: Id, g: Filter) => ({ $group: { _id: id, ...g } }),
16
+ count: (to = 'count') => ({ [to]: { $count: {} } }),
17
+ group: (by: Filter, ...fs: Filter[]) => ({ $group: Object.assign({ _id: by }, ...fs) }),
13
18
  skip: ({ skip: $skip }: FindOptions): Optional<Filter> => ifDefined($skip, { $skip }),
14
19
  take: ({ take: $limit }: FindOptions): Optional<Filter> => ifDefined($limit, { $limit }),
15
20
  sort: ($sort: Record<string, typeof asc | typeof desc>): Optional<Filter> => (isPresent($sort) ? { $sort } : undefined),
21
+ asc: (key: string) => aggregation.sort({ [key]: asc }),
22
+ desc: (key: string) => aggregation.sort({ [key]: desc }),
23
+ date: (key: string, format = '%Y-%m-%d') => ({ $dateToString: { date: `$${key}`, format } }),
16
24
  };