@thisisagile/easy-mongo 14.2.6 → 14.2.10

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.
@@ -0,0 +1,74 @@
1
+ import { OneOrMore } from "@thisisagile/easy";
2
+ type FuzzyOptions = {
3
+ maxEdits: number;
4
+ prefixLength: number;
5
+ maxExpansions: number;
6
+ };
7
+ type Clause = Record<string, (path: string) => object | undefined>;
8
+ type Compound = {
9
+ must?: OneOrMore<Clause>;
10
+ mustNot?: OneOrMore<Clause>;
11
+ should?: OneOrMore<Clause>;
12
+ filter?: OneOrMore<Clause>;
13
+ };
14
+ export declare const lucene: {
15
+ operations: {
16
+ clause: (cl: Clause) => any;
17
+ search: (cmp: Partial<Compound>) => {
18
+ $search: {
19
+ compound: any;
20
+ };
21
+ };
22
+ text: (value?: OneOrMore<unknown>, fuzzy?: Partial<FuzzyOptions>) => (path: string) => import("@thisisagile/easy").Optional<{
23
+ text: {
24
+ fuzzy?: Partial<FuzzyOptions> | undefined;
25
+ path: string;
26
+ query: {};
27
+ };
28
+ }>;
29
+ lt: (value: unknown) => (path: string) => import("@thisisagile/easy").Optional<{
30
+ range: {
31
+ path: string;
32
+ lt: {};
33
+ };
34
+ }>;
35
+ lte: (value: unknown) => (path: string) => import("@thisisagile/easy").Optional<{
36
+ range: {
37
+ path: string;
38
+ lte: {};
39
+ };
40
+ }>;
41
+ gt: (value: unknown) => (path: string) => import("@thisisagile/easy").Optional<{
42
+ range: {
43
+ path: string;
44
+ gt: {};
45
+ };
46
+ }>;
47
+ gte: (value: unknown) => (path: string) => import("@thisisagile/easy").Optional<{
48
+ range: {
49
+ path: string;
50
+ gte: {};
51
+ };
52
+ }>;
53
+ after: (date: unknown) => (path: string) => import("@thisisagile/easy").Optional<{
54
+ range: {
55
+ path: string;
56
+ gte: {};
57
+ };
58
+ }>;
59
+ before: (date: unknown) => (path: string) => import("@thisisagile/easy").Optional<{
60
+ range: {
61
+ path: string;
62
+ lt: {};
63
+ };
64
+ }>;
65
+ between: (after: unknown, before: unknown) => (path: string) => {
66
+ range: {
67
+ path: string;
68
+ gte: import("@thisisagile/easy").Json;
69
+ lt: import("@thisisagile/easy").Json;
70
+ };
71
+ };
72
+ };
73
+ };
74
+ export {};
package/dist/Lucene.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lucene = void 0;
4
+ const easy_1 = require("@thisisagile/easy");
5
+ const Utils_1 = require("./Utils");
6
+ exports.lucene = {
7
+ operations: {
8
+ clause: (cl) => Object.entries(cl).reduce((res, [k, v]) => v(k), {}),
9
+ search: (cmp) => ({
10
+ $search: {
11
+ compound: Object.entries(cmp).reduce((cp, [k, v]) => ({
12
+ ...cp,
13
+ [k]: (0, easy_1.isArray)(v) ? (0, easy_1.toArray)(v).map(i => exports.lucene.operations.clause(i)) : exports.lucene.operations.clause(v)
14
+ }), {})
15
+ }
16
+ }),
17
+ text: (value, fuzzy) => (path) => (0, easy_1.ifDefined)(value, v => ({
18
+ text: {
19
+ path,
20
+ query: v,
21
+ ...(0, easy_1.ifDefined)(fuzzy, { fuzzy })
22
+ }
23
+ })),
24
+ lt: (value) => (path) => (0, easy_1.ifDefined)(value, lt => ({ range: { path, lt } })),
25
+ lte: (value) => (path) => (0, easy_1.ifDefined)(value, lte => ({ range: { path, lte } })),
26
+ gt: (value) => (path) => (0, easy_1.ifDefined)(value, gt => ({ range: { path, gt } })),
27
+ gte: (value) => (path) => (0, easy_1.ifDefined)(value, gte => ({ range: { path, gte } })),
28
+ after: (date) => exports.lucene.operations.gte((0, Utils_1.toMongoType)(date)),
29
+ before: (date) => exports.lucene.operations.lt((0, Utils_1.toMongoType)(date)),
30
+ between: (after, before) => (path) => ({
31
+ range: {
32
+ path,
33
+ gte: (0, Utils_1.toMongoType)(after),
34
+ lt: (0, Utils_1.toMongoType)(before)
35
+ }
36
+ }),
37
+ }
38
+ };
39
+ //# sourceMappingURL=Lucene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lucene.js","sourceRoot":"","sources":["../src/Lucene.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './Collection';
2
+ export * from './Lucene';
2
3
  export * from './MongoGateway';
3
4
  export * from './MongoProvider';
4
5
  export * from './Stages';
package/dist/index.js CHANGED
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Collection"), exports);
18
+ __exportStar(require("./Lucene"), exports);
18
19
  __exportStar(require("./MongoGateway"), exports);
19
20
  __exportStar(require("./MongoProvider"), exports);
20
21
  __exportStar(require("./Stages"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,iDAA+B;AAC/B,kDAAgC;AAChC,2CAAyB;AACzB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,2CAAyB;AACzB,iDAA+B;AAC/B,kDAAgC;AAChC,2CAAyB;AACzB,0CAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy-mongo",
3
- "version": "14.2.6",
3
+ "version": "14.2.10",
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.6"
34
+ "@thisisagile/easy-test": "14.2.10"
35
35
  },
36
36
  "dependencies": {
37
- "@thisisagile/easy": "^14.2.6",
37
+ "@thisisagile/easy": "^14.2.10",
38
38
  "mongodb": "^5.6.0"
39
39
  }
40
40
  }
package/src/Lucene.ts ADDED
@@ -0,0 +1,51 @@
1
+ import {ifDefined, isArray, OneOrMore, toArray} from "@thisisagile/easy";
2
+ import {toMongoType} from "./Utils";
3
+
4
+ type FuzzyOptions = {
5
+ maxEdits: number,
6
+ prefixLength: number,
7
+ maxExpansions: number
8
+ }
9
+
10
+ type Clause = Record<string, (path: string) => object | undefined>;
11
+
12
+ type Compound = {
13
+ must?: OneOrMore<Clause>,
14
+ mustNot?: OneOrMore<Clause>,
15
+ should?: OneOrMore<Clause>,
16
+ filter?: OneOrMore<Clause>
17
+ }
18
+
19
+ export const lucene = {
20
+ operations: {
21
+ clause: (cl: Clause) => Object.entries(cl).reduce((res, [k, v]) => v(k), {} as any),
22
+ search: (cmp: Partial<Compound>) => ({
23
+ $search: {
24
+ compound: Object.entries(cmp).reduce((cp, [k, v]) => ({
25
+ ...cp,
26
+ [k]: isArray(v) ? toArray(v).map(i => lucene.operations.clause(i)) : lucene.operations.clause(v)
27
+ }), {} as any)
28
+ }
29
+ }),
30
+ text: (value?: OneOrMore<unknown>, fuzzy?: Partial<FuzzyOptions>) => (path: string) => ifDefined(value, v => ({
31
+ text: {
32
+ path,
33
+ query: v,
34
+ ...ifDefined(fuzzy, {fuzzy})
35
+ }
36
+ })),
37
+ lt: (value: unknown) => (path: string) => ifDefined(value, lt => ({range: {path, lt}})),
38
+ lte: (value: unknown) => (path: string) => ifDefined(value, lte => ({range: {path, lte}})),
39
+ gt: (value: unknown) => (path: string) => ifDefined(value, gt => ({range: {path, gt}})),
40
+ gte: (value: unknown) => (path: string) => ifDefined(value, gte => ({range: {path, gte}})),
41
+ after: (date: unknown) => lucene.operations.gte(toMongoType(date)),
42
+ before: (date: unknown) => lucene.operations.lt(toMongoType(date)),
43
+ between: (after: unknown, before: unknown) => (path: string) => ({
44
+ range: {
45
+ path,
46
+ gte: toMongoType(after),
47
+ lt: toMongoType(before)
48
+ }
49
+ }),
50
+ }
51
+ };
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './Collection';
2
+ export * from './Lucene';
2
3
  export * from './MongoGateway';
3
4
  export * from './MongoProvider';
4
5
  export * from './Stages';