@thisisagile/easy-mongo 14.2.2 → 14.2.3
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/MongoGateway.js.map +1 -1
- package/dist/Stages.js +5 -5
- package/dist/Stages.js.map +1 -1
- package/package.json +3 -3
- package/src/MongoGateway.ts +1 -1
- package/src/Stages.ts +14 -9
package/dist/MongoGateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MongoGateway.js","sourceRoot":"","sources":["../src/MongoGateway.ts"],"names":[],"mappings":";;;AACA,4CAe2B;AAE3B,
|
|
1
|
+
{"version":3,"file":"MongoGateway.js","sourceRoot":"","sources":["../src/MongoGateway.ts"],"names":[],"mappings":"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"}
|
package/dist/Stages.js
CHANGED
|
@@ -5,14 +5,14 @@ const easy_1 = require("@thisisagile/easy");
|
|
|
5
5
|
const Utils_1 = require("./Utils");
|
|
6
6
|
exports.asc = 1;
|
|
7
7
|
exports.desc = -1;
|
|
8
|
-
const escapeRegex = (s) => s.replace(/[|\\{}()[\]^$+*?.]/g,
|
|
8
|
+
const escapeRegex = (s) => s.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d');
|
|
9
9
|
exports.stages = {
|
|
10
10
|
root: '$$ROOT',
|
|
11
11
|
current: '$$CURRENT',
|
|
12
12
|
id: '_id',
|
|
13
13
|
decode: {
|
|
14
14
|
fields: (f) => Object.entries(f).reduce((res, [k, v]) => (0, easy_1.on)(res, r => (0, easy_1.ifDefined)((0, easy_1.isFunction)(v) ? v(k) : v, nv => (r[k] = nv))), {}),
|
|
15
|
-
fieldsArrays: (f) => Object.entries(f).reduce((res, [k, v]) => (0, easy_1.on)(res, r => r[k] = (0, easy_1.use)((0, easy_1.toArray)(v), vs => vs.map(v => (0, easy_1.isFunction)(v) ? v(k) : v))), {}),
|
|
15
|
+
fieldsArrays: (f) => Object.entries(f).reduce((res, [k, v]) => (0, easy_1.on)(res, r => (r[k] = (0, easy_1.use)((0, easy_1.toArray)(v), vs => vs.map(v => ((0, easy_1.isFunction)(v) ? v(k) : v))))), {}),
|
|
16
16
|
id: (f) => ((0, easy_1.isString)(f) ? `$${(0, easy_1.asString)(f)}` : (0, easy_1.isPrimitive)(f) ? f : Object.entries(f).map(([k, v]) => ((0, easy_1.isFunction)(v) ? v(k) : v))[0]),
|
|
17
17
|
},
|
|
18
18
|
match: {
|
|
@@ -24,7 +24,7 @@ exports.stages = {
|
|
|
24
24
|
isIn: (value, separator = ',') => ({ $in: (0, easy_1.isString)(value) ? value.split(separator) : value }),
|
|
25
25
|
after: (date) => exports.stages.match.gte((0, Utils_1.toMongoType)(date)),
|
|
26
26
|
before: (date) => exports.stages.match.lt((0, Utils_1.toMongoType)(date)),
|
|
27
|
-
anywhere: (q) => ({ $regex: escapeRegex(q), $options:
|
|
27
|
+
anywhere: (q) => ({ $regex: escapeRegex(q), $options: 'i' }),
|
|
28
28
|
},
|
|
29
29
|
sort: {
|
|
30
30
|
sort: ($sort) => ((0, easy_1.isPresent)($sort) ? { $sort } : undefined),
|
|
@@ -59,7 +59,7 @@ exports.stages = {
|
|
|
59
59
|
},
|
|
60
60
|
project: {
|
|
61
61
|
include: (...includes) => (0, easy_1.ifNotEmpty)(includes, es => ({ $project: es.reduce((a, b) => ({ ...a, ...((0, easy_1.isString)(b) ? { [b]: 1 } : b) }), {}) })),
|
|
62
|
-
exclude: (...excludes) => (0, easy_1.ifNotEmpty)(excludes, es => ({ $project: es.reduce((a, b) => ({ ...a, ...((0, easy_1.isString)(b) ? { [b]: 0 } : b) }), {}) }))
|
|
62
|
+
exclude: (...excludes) => (0, easy_1.ifNotEmpty)(excludes, es => ({ $project: es.reduce((a, b) => ({ ...a, ...((0, easy_1.isString)(b) ? { [b]: 0 } : b) }), {}) })),
|
|
63
63
|
},
|
|
64
64
|
replaceWith: {
|
|
65
65
|
replaceWith: (f) => (0, easy_1.ifDefined)(f, { $replaceWith: f }),
|
|
@@ -72,6 +72,6 @@ exports.stages = {
|
|
|
72
72
|
unwind: (from) => (f) => ({ $unwind: `$${from ?? f}` }),
|
|
73
73
|
count: (from) => (f) => ({ $sortByCount: `$${from ?? f}` }),
|
|
74
74
|
data: () => [],
|
|
75
|
-
}
|
|
75
|
+
},
|
|
76
76
|
};
|
|
77
77
|
//# sourceMappingURL=Stages.js.map
|
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": "14.2.
|
|
3
|
+
"version": "14.2.3",
|
|
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": "14.2.
|
|
34
|
+
"@thisisagile/easy-test": "14.2.3"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@thisisagile/easy": "^14.2.
|
|
37
|
+
"@thisisagile/easy": "^14.2.3",
|
|
38
38
|
"mongodb": "^5.6.0"
|
|
39
39
|
}
|
|
40
40
|
}
|
package/src/MongoGateway.ts
CHANGED
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
toArray,
|
|
17
17
|
} from '@thisisagile/easy';
|
|
18
18
|
import { Collection } from './Collection';
|
|
19
|
-
import {stages} from
|
|
19
|
+
import { stages } from './Stages';
|
|
20
20
|
|
|
21
21
|
export class MongoGateway implements Gateway<FindOptions> {
|
|
22
22
|
constructor(readonly collection: Collection, readonly provider: MongoProvider = collection.provider) {}
|
package/src/Stages.ts
CHANGED
|
@@ -13,7 +13,9 @@ import {
|
|
|
13
13
|
on,
|
|
14
14
|
Optional,
|
|
15
15
|
OneOrMore,
|
|
16
|
-
PartialRecord,
|
|
16
|
+
PartialRecord,
|
|
17
|
+
use,
|
|
18
|
+
toArray,
|
|
17
19
|
} from '@thisisagile/easy';
|
|
18
20
|
import { toMongoType } from './Utils';
|
|
19
21
|
|
|
@@ -22,7 +24,7 @@ export const desc = -1;
|
|
|
22
24
|
export type Accumulators = '$sum' | '$count' | '$avg' | '$first' | '$last' | '$min' | '$max' | '$push';
|
|
23
25
|
export type Accumulator = PartialRecord<Accumulators, Filter>;
|
|
24
26
|
|
|
25
|
-
const escapeRegex = (s: string) => s.replace(/[|\\{}()[\]^$+*?.]/g,
|
|
27
|
+
const escapeRegex = (s: string) => s.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d');
|
|
26
28
|
|
|
27
29
|
export const stages = {
|
|
28
30
|
root: '$$ROOT',
|
|
@@ -30,7 +32,8 @@ export const stages = {
|
|
|
30
32
|
id: '_id',
|
|
31
33
|
decode: {
|
|
32
34
|
fields: (f: Filter) => Object.entries(f).reduce((res, [k, v]) => on(res, r => ifDefined(isFunction(v) ? v(k) : v, nv => (r[k] = nv))), {} as any),
|
|
33
|
-
fieldsArrays: (f: Filter) =>
|
|
35
|
+
fieldsArrays: (f: Filter) =>
|
|
36
|
+
Object.entries(f).reduce((res, [k, v]) => on(res, r => (r[k] = use(toArray(v), vs => vs.map(v => (isFunction(v) ? v(k) : v))))), {} as any),
|
|
34
37
|
id: (f: Filter | string) => (isString(f) ? `$${asString(f)}` : isPrimitive(f) ? f : Object.entries(f).map(([k, v]) => (isFunction(v) ? v(k) : v))[0]),
|
|
35
38
|
},
|
|
36
39
|
match: {
|
|
@@ -43,7 +46,7 @@ export const stages = {
|
|
|
43
46
|
isIn: (value: string | unknown[], separator = ',') => ({ $in: isString(value) ? value.split(separator) : value }),
|
|
44
47
|
after: (date: unknown) => stages.match.gte(toMongoType(date)),
|
|
45
48
|
before: (date: unknown) => stages.match.lt(toMongoType(date)),
|
|
46
|
-
anywhere: (q: string) => ({ $regex: escapeRegex(q), $options:
|
|
49
|
+
anywhere: (q: string) => ({ $regex: escapeRegex(q), $options: 'i' }),
|
|
47
50
|
},
|
|
48
51
|
sort: {
|
|
49
52
|
sort: ($sort: Record<string, typeof asc | typeof desc>): Optional<Filter> => (isPresent($sort) ? { $sort } : undefined),
|
|
@@ -79,8 +82,10 @@ export const stages = {
|
|
|
79
82
|
take: (o: FindOptions = {}): Optional<Filter> => ifDefined(o.take, { $limit: asNumber(o.take) }),
|
|
80
83
|
},
|
|
81
84
|
project: {
|
|
82
|
-
include: (...includes: (string | Record<string, 1>)[]): Optional<Filter> =>
|
|
83
|
-
|
|
85
|
+
include: (...includes: (string | Record<string, 1>)[]): Optional<Filter> =>
|
|
86
|
+
ifNotEmpty(includes, es => ({ $project: es.reduce((a: Filter, b: Filter) => ({ ...a, ...(isString(b) ? { [b]: 1 } : b) }), {}) })),
|
|
87
|
+
exclude: (...excludes: (string | Record<string, 0>)[]): Optional<Filter> =>
|
|
88
|
+
ifNotEmpty(excludes, es => ({ $project: es.reduce((a: Filter, b: Filter) => ({ ...a, ...(isString(b) ? { [b]: 0 } : b) }), {}) })),
|
|
84
89
|
},
|
|
85
90
|
replaceWith: {
|
|
86
91
|
replaceWith: (f?: Filter): Optional<Filter> => ifDefined(f, { $replaceWith: f }),
|
|
@@ -90,8 +95,8 @@ export const stages = {
|
|
|
90
95
|
},
|
|
91
96
|
facet: {
|
|
92
97
|
facet: (f: Record<string, OneOrMore<Get<Optional<Filter>, string>>>) => ({ $facet: stages.decode.fieldsArrays(f) }),
|
|
93
|
-
unwind: (from?: string) => (f?: string) => ({ $unwind: `$${from ?? f}`}),
|
|
94
|
-
count: (from?: string) => (f?: string) => ({ $sortByCount: `$${from ?? f}`}),
|
|
98
|
+
unwind: (from?: string) => (f?: string) => ({ $unwind: `$${from ?? f}` }),
|
|
99
|
+
count: (from?: string) => (f?: string) => ({ $sortByCount: `$${from ?? f}` }),
|
|
95
100
|
data: () => [],
|
|
96
|
-
}
|
|
101
|
+
},
|
|
97
102
|
};
|